터미널 창에서 :
rm
명령을 사용하면 파일 만 제거 할 수 있습니다. 명령을
사용 rmdir
하면 빈 폴더 만 제거됩니다.
파일 등이있는 폴더 내에 파일과 폴더가 중첩 된 디렉토리가있는 경우 모든 힘든 명령을 입력하지 않고 모든 파일과 폴더를 삭제할 수 있습니까?
차이가 나는 경우 Microsoft DOS 또는 Linux가 아닌 터미널에서 mac bash 쉘을 사용하고 있습니다.
답변
rm -rf some_dir
-r “recursive”-f “force”(억제 확인 메시지)
조심해!
답변
rm -rf *
현재 디렉토리의 모든 (폴더 및 파일)을 제거합니다.
그러나 조심하십시오! 자신이 올바른 디렉토리에 있는지 확실하게 확신 할 경우에만이 명령을 실행하십시오.
답변
그렇습니다. -r
옵션은 알 rm
수 r에 ecursive, 그 인수를 루트로 전체 파일 계층을 제거; 다시 말해서, 디렉토리가 주어지면, 모든 내용을 제거하고 효과적인 것을 수행합니다 rmdir
.
알아야 할 다른 두 가지 옵션은 -i
및 -f
입니다. -i
의 약자 내가 nteractive; 그것은 만드는 rm
각각의 모든 파일을 삭제하기 전에 프롬프트를. f를-f
의미합니다 . 묻지 않고 모든 것을 삭제합니다. 더 안전하지만 더 빠릅니다. 올바른 것을 삭제하고 있다고 확신 하는 경우에만 사용 하십시오 . 이를 지정 하거나 지정 하지 않을 수 있습니다 . 독립적 인 설정입니다.-i
-f
-r
평소와 같이 스위치를 결합 할 수 있습니다 : rm -r -i
is rm -ri
, and rm -r -f
is rm -rf
.
또한 배운 내용 bash
은 모든 유닉스 OS (OS X, Linux, FreeBSD 등)에 적용됩니다. 사실, rm
문법은 모든 유닉스 OS의 거의 모든 셸 에서 동일 합니다. OS X은 실제로 BSD 유닉스 시스템입니다.
답변
그래서 나는 일부 디렉토리와 파일을 제외하고 디렉토리의 모든 파일을 제거하는 방법을 온전히 찾고있었습니다. 많은 검색을 한 후 find를 사용하여 수행 할 수있는 방법을 고안했습니다.
find -E . -regex './(dir1|dir2|dir3)' -and -type d -prune -o -print -exec rm -rf {} \;
기본적으로 정규식을 사용하여 결과에서 제외 할 디렉토리를 선택한 다음 나머지 파일을 제거합니다. 다른 누군가가 필요로 할 경우를 대비하여 여기에 넣고 싶었습니다.