터미널에서 비어 있지 않은 디렉토리를 삭제하는 방법?


630

다음 디렉토리를 어떻게 삭제합니까?

나는 타이핑했다 :

rmdir lampp

이 오류가 발생합니다 :

rmdir: failed to remove `lampp': Directory not empty

디렉토리의 모든 파일을 삭제하고 디렉토리 폴더를 삭제하는 명령이 있습니까?


1
위의 모든 세부 명령을 사용하여 "새 폴더"와 같은 디렉토리를 제거 할 수 없습니다. 두 단어로되어 있습니다. 그러나 나는 그 디렉토리를 제거하고 싶다. 모든 제안을 환영합니다. T.Divakara, 방갈로르, 인도

파일 이름에 공백이 있으면 'quotes'> rmdir 'New Folder'<를 사용한 다음 폴더를 분산 시키거나 보이지 않는 문자에 이스케이프 문자를 사용하십시오.
Ken Mollerup

2
그냥 rm -r lampp할 것입니다.
John Strood

답변:


876

아래 명령을 사용하십시오 :

rm -rf lampp

lampp디렉토리에 포함 된 모든 파일과 폴더를 삭제합니다 .

사용자에게 폴더를 삭제할 권한이없는 경우 :

sudo명령의 시작 부분에 추가하십시오 .

sudo rm -rf folderName

그렇지 않으면 sudo권한이 거부 된 상태로 반환되지 않습니다. -f디렉토리를 삭제하는 동안 사용하지 않는 것이 좋습니다 .

sudo rm -r folderName

참고 : 이것은 터미널에서 삭제하려는 폴더와 같은 수준에 이미 있다고 가정합니다.

sudo rm -r /path/to/folderName

참고 : 당신은 문자를 사용할 수 있습니다 -f, -r, -v:

  • -f = 존재하지 않는 파일을 무시하고 프롬프트하지 않습니다.
  • -r = 디렉토리와 그 내용을 재귀 적으로 제거
  • -v = 무슨 일이 일어나고 있는지 설명

69
겸손한 견해로는, 처음 시도 할 때 "f"를 추가하지 않는 것이 좋습니다. 특히 잘못된 디렉토리에서 실수로 디렉토리에서 수행 한 경우 중요 할 수있는 특정 경고 프롬프트를 무시하는 것이 목적입니다. 제 생각에는 "f"없이 먼저 시도하는 것이 좋습니다. 많은 경고 메시지가 표시 될 때만 무시하고 모두 무시하고 Ctrl + C를 누른 다음 " 에프".
thomasrutter

하지 @BKSpurgeon하지 않는 한 당신은 실수로 입력 --no-preserve-root .
muru

@thomasrutter ... 동의합니다. 파일 "xxx"소유자 : root 및 그룹 : root-f 스위치를 사용하여 삭제할 수 있습니다 . 그리고 sudo 없이 . -f : " rm : 쓰기 방지 된 일반 파일 '/home/william/.cache/netbeans/v08.01/tmp/xxx'? _ '
의지

95
rm -R lampp

그러나 실수로 의도 한 것보다 더 많은 것을 쉽게 삭제하기 때문에 이와 같은 재귀 명령에주의해야합니다.

Enter 키를 누르기 전에 사용자가있는 디렉토리와 명령을 올바르게 입력했는지 여부를 항상 두 번 확인하는 것이 좋습니다.

보다 안전한 버전

rm -R -i lampp

추가 -i하면 모든 삭제시 프롬프트가 표시되므로 조금 더 안전합니다. 그러나 많은 파일을 삭제하는 경우 이것은 실용적이지 않습니다. 그래도 먼저 시도해 볼 수 있습니다.

옵션 에 대한 참고 -f 사항 :

많은 사람들 이 성가신 프롬프트를 제거한다고 주장하면서 ( 또는에 -f결합) 사용을 제안 합니다. 그러나, 일반적인 경우에 당신이 그것을 필요로하고 사용하면 아마 몇 가지 문제 억제하지 않습니다 에 대해 알고 싶어합니다. 당신이 그것을 사용할 때, 당신의 인수가 존재하지 않는 디렉토리 또는 파일을 제공한다면 경고하지 않을 것입니다 : rm은 아무것도 자동으로 삭제하지 못합니다. 일반적으로 인수 없이 문제가 발생 하면 : 없이 먼저 시도 하십시오. 쓰기 권한이없는 파일에 대한 프롬프트가 너무 많이 표시되면 다음과 같이 사용해보십시오.-Rf-rf-f-f. 또는 삭제하려는 파일 및 디렉토리에 대한 전체 권한이있는 사용자 (또는 sudo를 사용하는 수퍼 유저)에서 명령을 실행하여 처음에 이러한 프롬프트를 방지하십시오.


4
참고 : 소문자도 -r사용할 수 있으며 여기에서도 동일한 효과가 있습니다. 난 단지 대문자를 사용하는 경향 -R이 다른 같은 내가 사용하는 명령과 일치 때문에 grep그리고 chmod에만 대문자 형태를 지원하는 일부.
thomasrutter

이것은 Android에서 adb (android debug bridge)를 사용하여 나를 위해 일했습니다. rm -rf를 시도했지만 작동하지 않았습니다. rm -R을 사용해야했습니다. 감사.
raddevus

이것은 특히 Bash 터미널 사용 경험이없는 경우에 좋은 솔루션입니다. 명령을로 단축 할 수 있습니다 rm -ir FOLDER.
AlainD

24

CLI 모드를 통해 디렉토리를 삭제하는 방법에는 여러 가지가 있습니다. 어느 쪽이 편한지에 따라 다릅니다.

rm -rvf /path/to/directory  
  • -r = 디렉토리와 그 내용을 재귀 적으로 제거
  • -v = 무슨 일이 일어나고 있는지 설명
  • -f = 존재하지 않는 파일은 무시하고 프롬프트하지 않습니다.

Linux를 처음 사용하는 경우 명령 페이지 ( man rm)를 사용하여 더 많은 옵션과 정확성을 얻으십시오.


-2

나는 오늘 그 문제에 어려움을 겪고 있었지만 sudo로 극복했습니다.

경고 : 아래 명령을 사용하기 전에 전체 내용을 삭제해야합니다.

$ sudo rm -R [Directory name]

나는 오늘 이것을 성공적으로했고, 원하지 않거나 필요하지 않은 것으로 확인 된 비어 있지 않은 많은 디렉토리를 제거했습니다.

14.04 LTS를 사용하고 있습니다


4
"SUDO"는 명령이 아닙니다- "sudo"입니다. 그럼에도 불구하고 sudo를 사용하여 비어 있지 않은 디렉토리를 삭제하지 않고 자신이 소유하지 않은 파일을 삭제하는 데 사용합니다. 물론 이것을 소유하지 않은 파일을 맹목적으로 삭제해서는 안되므로 위험하지 않으며 현명하지 않습니다.
Marty Fried

-3

그건 그렇고 개인적으로 쓰기 보호 파일 (.git 및 하위 디렉토리)이 들어있는 디렉토리를 삭제하고 싶었고 결국이 파일을 성공적으로 삭제하려면 수퍼 유저가되어야한다는 것을 깨달았습니다. 여기 내가 한 일이 있습니다.

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/

4
나는 당신이 sudo su여기 필요하다고 생각하지 않습니다 . rm명령 앞에 접두사를 붙이십시오 sudo. 보안을 위해 필요하지 않은 경우 루트 프롬프트에 남아 있지 않는 것이 좋습니다 (sudo 지지자에 따라).
thomasrutter

2
또한 어떤 디렉토리에 있는지 매우 확신하십시오 sudo rm -r.
Tony Martin

루트 상대 명령 ( /directory_name)을 만들 수 있으므로 어떤 디렉토리를 삭제하는지 의심 할 여지가 없습니다.
Yaakov Ainspan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.