폴더를 삭제할 수없는 이유는 무엇입니까?


14
Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

터미널에서 이러한 폴더를 삭제하려고했습니다.

rm -r

2
해당 오류 출력이 노틸러스에서 발생한 경우 질문에 스크린 샷을 추가 할 수 있습니다. 또한 rm -r터미널 의 출력은 무엇 입니까? 이 게시물 의 답변을 사용해 보셨습니까 ?
Lucio

1
사용 rm -rf대신에
nickanor

rm -Rf재귀 적으로 디렉토리를 제거 하는 데 사용되었습니다 .이 작업이 도움이 될 수 있습니다. 대문자 R은 재귀는 매뉴얼 페이지를 참조 의미man rm
revnoise

1
이 디렉토리를 제거 할 권한이 있습니까? ls -la이 옵션을 삭제하려면 여기에 실행 하여 붙여 넣으십시오.
revnoise

폴더는 Windows에서 먼저 삭제되었다고 생각한 다음 Ubuntu에서 삭제를 시도했습니다. 그런 다음 Windows에서 삭제를 시도했지만 오류가 발생했습니다. Directory not empty 그러나 그 모든 빈 약속. Windows에서는 오류라고 말합니다Error x00000
tepheno

답변:


10

당신은 시도해 봤어 sudo rm -r. 어떤 종류의 파일이 있습니까? 모든 파일을 먼저 삭제 한 다음 폴더를 삭제할 수도 있습니다. 추가 작업이지만 때로는 작업을 수행하는 것이 좋습니다.

sudo 수퍼 유저 작업을위한 것입니다.


sudo를 알고 있으며 폴더에는 하위 폴더에만 파일이 없습니다. 아티스트 폴더 다음 앨범 폴더 안에 MP3가 없습니다. 폴더 만
tepheno

그것은 ... 친구를 작동
Angelin Nadar에게

9

btrfs 파일 시스템의 폴더 에이 문제가 있습니다. 마운트 지점과 lsof를 확인하는 것이 일반적입니다. 내 경우에는 수정 된 이후로 오래된 버그로 인한 손상이었습니다.

확인해야 할 일반적인 사항 :

  • lsof를 + D <path> - 본 의지 Ls의 T 개의 모든 입출력F 세틸. 열려있는 파일이 들어있는 폴더는 삭제할 수 없지만 일반적으로 "장치 또는 리소스 사용 중"이라는 약간 다른 오류가 발생합니다. "+ D <path>"를 생략하면 lsof는 모든 파일 시스템의 모든 폴더에 대한 목록을 표시하므로 시간이 낭비됩니다. ;)
  • mount : 현재 마운트 된 파일 시스템을 보여줍니다. 활성으로 마운트 된 마운트 지점 또는 해당 상위 폴더는 삭제할 수 없습니다.
  • btrfs sub list <path> : 마운트 지점과 유사하게 btrfs 관련 명령을 사용하지 않으면 btrfs subvolume을 삭제할 수 없습니다. btrfs subvolume delete <path> .

손상 해결 방법

쉽게 고칠 수없는 손상된 경우 기본 해결 방법은 파일 시스템을 백업하고 포맷 한 다음 복원 (잘못된 데이터 제외)하는 것입니다. 파일 시스템에있는 데이터 양에 따라이 작업이 번거로울 수 있습니다. :-/

필자의 경우 문제 폴더가 하위 볼륨 내부에 있었으므로 위의 작업을 수행 할 수 있었지만 전체 파일 시스템 대신 하위 볼륨 만 삭제했습니다. 데이터를 백업하고 하위 볼륨 btrfs sub del <subvolume-path>를 삭제했습니다 . 그런 다음 문제 폴더를 남기지 않고 새로운 하위 볼륨으로 복원 할 수있었습니다.

i_size의 손상

필자의 경우 원인은 0이 아닌 i_size의 손상으로 판명 되었습니다. Btrfs는 i_size를 사용하여 폴더가 비어 있는지 여부를 알려줍니다. 이를 확인하려면 다음을 실행하십시오.

stat -c %s <foldername>

btrfs에서 빈 폴더의 i_size는 0이어야합니다. 결국 그것은 일반적으로 4k입니다.

관련된 링크들:

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_cannot_delete_an_empty_directory


6

시도 cd후 사용하여 모든 파일을 제거 디렉토리로 rm -rf *. 그런 다음 디렉토리에서 나가서 디렉토리 rmdir를 삭제하십시오.


이것은 나를 위해 아름답게 작동합니다 +1 Thanks man
AndrewL64

나는 이것을 시도하고 오류 메시지 : "인수 목록이 너무 깁니다"
Rafael_Espericueta

1

시험 sudo rm -rf [Folder name]

여전히 디렉토리가 비어 있지 않다는 것은 디렉토리가 사용 중임을 의미합니다. 프로그램을 닫거나 사용중인 프로그램을 확인한 후 명령을 다시 사용하십시오.

Unity 프로젝트를 삭제하려고 할 때 나를 위해 일했으며 Unity 허브에서 사용되었습니다. 단순히 통일 허브를 닫고 명령을 다시 작성했습니다.


0

삭제하려는 폴더 바로 앞의 폴더로 이동하여 폴더 이름으로 foldername을 변경하여이 명령을 실행하십시오. rm -rf foldername

R은 재귀를 의미하고 f는 힘을 의미합니다.


rm: cannot remove Wan Pisu - New World': Directory not empty
tepheno

사용 했습니까 -rf?
라몬 수아레스

-rf내가 사용했다고 생각 rm -r -f -v합니다.
tepheno

방금 동일한 디렉토리 이름으로 테스트를 수행했으며 rf v를 분리하는 방법을 사용하여 저에게 효과적이었습니다. 계속 사용 rm하고 rmdir있습니까? 장황한 (-v) 단서가 있습니까? 또한 디렉토리 내에 0 바이트 파일이 있습니까? "rm -r -f -v Wan \ Pisu \-\ New \ World / 제거 'Wan Pisu-New World / test.test'제거 디렉토리 : 'Wan Pisu-New World'"
Ramon Suarez

아니요, 폴더 만 있습니다. 또한 Windows에서 삭제하면 Error; 0x-----삭제할 수도 없습니다. -v내가 무엇을하고 있는지 설명하고있다rm --help
tepheno


0

쓰기 권한이 설정되어 있지 않으면 디렉토리를 제거 할 수 없습니다.

예를 들어, 다음은 디렉토리의 소유자이지만 제거 할 수 없습니다. 쓰기 권한을 추가 chmod하면 모든 것이 성공합니다.

DIR:/xieerqi
skolodya@ubuntu:$ ls -dl TESTDIR/                                              
dr-xr-xr-x 2 xieerqi xieerqi 4096 Jan 24 16:06 TESTDIR//

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              
rm: cannot remove ‘TESTDIR/one & two’: Permission denied
rm: cannot remove ‘TESTDIR/tom&jerry’: Permission denied
rm: cannot remove ‘TESTDIR/jekyl&hide’: Permission denied
rm: cannot remove ‘TESTDIR/pdfReader.sh’: Permission denied

DIR:/xieerqi
skolodya@ubuntu:$ chmod +w TESTDIR/                                            

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              

DIR:/xieerqi
skolodya@ubuntu:$ echo $?
0

0

Windows에는 Ubuntu VirtualBox 가상 머신 (VM)에 마운트 된 폴더가 있습니다. 나는 Windows 파일 관리자에서 제거하거나 사용하여 VM 내부에서 수 없었다 rmdirrm -Rf *.

TLDR : 마침내 Git Bash (Windows에서는 물론)를 사용하여 제거 할 수있었습니다 rm -Rf *.

Windows 파일 관리자에서 삭제하려고 할 때 폴더를 삭제하려면 관리자 권한이 필요하다고 말했습니다. 그러나 관리자라고해도 여전히 실패했습니다.

우분투 VM (이전에 공유 파일을 제거하는 데 문제가 없었던 곳)에서 오류 cannot remove protocol error와 다른 오류가 발생 했습니다.

마지막으로 Windows의 Git Bash에서 폴더를 삭제할 수있었습니다. Git Bash가 폴더에 일종의 잠금 장치가 있다고 생각합니다. Git Bash에서 내 작업 디렉토리는 내가 삭제하려고 한 디렉토리 중 하나였습니다. 나는 그것을 철회 한 다음 rm -Rf오류없이 사용하여 삭제했습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.