답변:
안전한 컴퓨팅을 연습하십시오. 계층 구조에서 한 수준 위로 이동하고 와일드 카드 식을 사용하지 마십시오.
cd ..; rm -rf -- <dir-to-remove>
두 개의 대시 --
에게 rm
그 <dir-to-remove>
이 대시로 시작하는 경우에도, 명령 줄 옵션이 아닙니다.
rm ./
하면 실수로 입력 rm . /
하면 재앙이 될 수 있습니다.
현재 파일 아래의 모든 파일 / 디렉터리를 삭제합니다.
find -mindepth 1 -delete
당신이 가지고있는 이름을 가진 다른 디렉토리에 대해 똑같이하고 싶다면, 그냥 이름을 붙일 수 있습니다.
find <name-of-directory> -mindepth 1 -delete
하위 디렉토리 및 파일뿐만 아니라 디렉토리 자체도 제거하려면 -mindepth 1
. -delete
제거 할 항목의 목록을 얻으려면 없이 수행하십시오 .
-mindepth 1
디렉토리 ( find <name-of-directory> -mindepth 1 -delete
)를 지정하는 경우 필요 합니다 . 그렇지 않으면 Johannes가 옳은 것은 현재 작업 디렉토리를 삭제하지 않을 것입니다 find -delete
.
find -mindepth 1 -delete
하지만 얻었 illegal option -- m
지만 mindepth 옵션을 제거했을 때 훌륭하게 작동했습니다 find . -delete
내가 항상하는 것은 타입
rm -rf *
그리고 다음 ESC- *을 공격 하고, 배쉬는 현재 작업 디렉토리에있는 파일 및 디렉토리의 명시 적 목록에 *을 확장됩니다.
이점은 다음과 같습니다.
사실, 나는 이것을 너무 좋아해서 .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 *
이 대답이 더 낫다고 생각합니다.
/unix/12593/how-to-remove-all-the-files-in-a-directory
최상위 디렉토리가
images
이면rm -r images/*
. 이것은 쉘 glob 연산자*
를 사용하여rm -r
이미지 내의 모든 파일 또는 디렉토리에서 실행 됩니다.
기본적으로 한 단계 위로 올라간 다음 X 디렉토리 내의 모든 것을 삭제한다고 말합니다. 이렇게하면 원본 폴더를 보존하면서 '여기에서 모두 삭제'라고 말하는 것보다 더 안전한 콘텐츠를 삭제할 폴더를 지정할 수 있습니다 (허용되지 않거나 원하지 않기 때문에 원하는 경우도 있음 폴더의 기존 권한을 수정하려면)