나는 이것이 하위 디렉토리와 그 아래의 모든 것을 삭제한다는 것을 알고 있습니다.
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 *
하지마! 이건 위험 해! 올바른 디렉토리에 있는지 확인하십시오!