[bash] 유닉스에서 현재 디렉토리와 그 아래에있는 모든 것을 어떻게 제거합니까?

나는 이것이 하위 디렉토리와 그 아래의 모든 것을 삭제한다는 것을 알고 있습니다.

rm -rf <subdir-name>

그러나 현재 디렉토리의 모든 항목과 그 아래의 모든 하위 디렉토리 및 모든 하위 디렉토리의 내용을 어떻게 삭제합니까?



답변

안전한 컴퓨팅을 연습하십시오. 계층 구조에서 한 수준 위로 이동하고 와일드 카드 식을 사용하지 마십시오.

cd ..; rm -rf -- <dir-to-remove>

두 개의 대시 --에게 rm<dir-to-remove>이 대시로 시작하는 경우에도, 명령 줄 옵션이 아닙니다.


답변

현재 파일 아래의 모든 파일 / 디렉터리를 삭제합니다.

find -mindepth 1 -delete

당신이 가지고있는 이름을 가진 다른 디렉토리에 대해 똑같이하고 싶다면, 그냥 이름을 붙일 수 있습니다.

find <name-of-directory> -mindepth 1 -delete

하위 디렉토리 및 파일뿐만 아니라 디렉토리 자체도 제거하려면 -mindepth 1. -delete제거 할 항목의 목록을 얻으려면 없이 수행하십시오 .


답변

내가 항상하는 것은 타입

rm -rf *

그리고 다음 ESC- *을 공격 하고, 배쉬는 현재 작업 디렉토리에있는 파일 및 디렉토리의 명시 적 목록에 *을 확장됩니다.

이점은 다음과 같습니다.

  • ENTER를 누르기 전에 삭제할 파일 목록을 검토 할 수 있습니다.
  • 명령 기록에는 와일드 카드가 그대로있는 “rm -rf *”가 포함되지 않습니다. 그러면 잘못된 시간에 잘못된 위치에서 실수로 재사용 될 수 있습니다. 대신 명령 기록에 실제 파일 이름이 있습니다.
  • 또한 “잠시만 기다려주십시오 … 내가 방금 삭제 한 파일은 무엇입니까?”라고 대답하는 것이 한두 번 편리해졌습니다. 파일 이름은 터미널 스크롤 백 버퍼 또는 명령 기록에 표시됩니다.

사실, 나는 이것을 너무 좋아해서 .bashrc에서 다음 줄을 사용하여 TAB의 기본 동작으로 만들었습니다.

bind TAB:insert-completions


답변

사용하다

rm -rf *

업데이트 : .현재 디렉토리를 나타내지 만 사용할 수 없습니다. 명령에 .및에 대한 명시 적 검사가있는 것 같습니다 ... 대신 와일드 카드 글 로빙을 사용하십시오. 그러나 이것은 위험 할 수 있습니다.

더 안전한 버전 IMO는 다음을 사용하는 것입니다.

rm -ri * 

(모든 파일 / 디렉토리를 삭제하기 전에 확인하라는 메시지가 표시됩니다.)


답변

rm –rf .모든 하위 디렉토리와 그 내용을 포함하여 현재의 모든 것을 직접 제거하는 것이 정확합니다 . 하나의 점 ( .) 현재 디렉토리를 의미합니다. 이중 점 ( )은 이전 디렉토리를 의미 rm -rf ..하므로 하지 않도록주의 하십시오...

즉, 당신이 나와 같고 동시에 여러 개의 터미널 창이 열려 있다면 안전하고 rm -ir .Lets look at the command arguments를 사용하여 이유를 이해하는 것이 좋습니다.

첫째, rm명령 매뉴얼 페이지 ( man rm대부분의 Unix에서)를 보면 –r“디렉토리 내용을 재귀 적으로 제거” 한다는 의미입니다. 따라서 rm -r .혼자 수행 하면 현재 디렉토리의 모든 항목과 그 아래의 모든 항목이 삭제됩니다.

에서 rm –rf .추가 -f 수단 “결코 프롬프트, 존재하지 않는 파일을 무시”. 이 명령은 현재 디렉터리에있는 모든 파일과 디렉터리를 삭제하고 실제로 수행 할 것인지 확인하는 메시지를 표시하지 않습니다. -f권한이있는 사용자로 명령을 실행하면 실제로 원하는 내용인지 확인하지 않고 디렉토리의 내용을 삭제할 수 있으므로 특히 위험합니다.

otherhand에,에 그 대신 “어떤 제거하기 전에 프롬프트”의미. 즉, rm이 모든 파일을 행복하게 삭제하기 전에 “oups! 그건 내가 원하는 것이 아닙니다”라고 말할 기회를 얻게됩니다.rm -ri .-i-f

초기 시스템 관리자 시절 rm -rf /에는 전체 권한 (루트)으로 로그인하는 동안 시스템에서 작업을 수행했습니다. 그 결과 백업에서 시스템을 복원하는 데 이틀이 지났습니다. 그래서 지금 고용하고 rm -ri있습니다.


답변

어때 :

rm -rf "$(pwd -P)"/* 


답변

rm  -rf * 

하지마! 이건 위험 해! 올바른 디렉토리에 있는지 확인하십시오!