[file] 터미널을 통해 파일과 디렉토리를 빠르게 제거하는 방법 (bash 쉘) [닫기]

터미널 창에서 :

rm명령을 사용하면 파일 만 제거 할 수 있습니다. 명령을
사용 rmdir하면 빈 폴더 만 제거됩니다.

파일 등이있는 폴더 내에 파일과 폴더가 중첩 된 디렉토리가있는 경우 모든 힘든 명령을 입력하지 않고 모든 파일과 폴더를 삭제할 수 있습니까?

차이가 나는 경우 Microsoft DOS 또는 Linux가 아닌 터미널에서 mac bash 쉘을 사용하고 있습니다.



답변

rm -rf some_dir

-r “recursive”-f “force”(억제 확인 메시지)

조심해!


답변

rm -rf *

현재 디렉토리의 모든 (폴더 및 파일)을 제거합니다.

그러나 조심하십시오! 자신이 올바른 디렉토리에 있는지 확실하게 확신 할 경우에만이 명령을 실행하십시오.


답변

그렇습니다. -r옵션은 알 rmr에 ecursive, 그 인수를 루트로 전체 파일 계층을 제거; 다시 말해서, 디렉토리가 주어지면, 모든 내용을 제거하고 효과적인 것을 수행합니다 rmdir.

알아야 할 다른 두 가지 옵션은 -i-f입니다. -i의 약자 내가 nteractive; 그것은 만드는 rm각각의 모든 파일을 삭제하기 전에 프롬프트를. f를-f 의미합니다 . 묻지 않고 모든 것을 삭제합니다. 더 안전하지만 더 빠릅니다. 올바른 것을 삭제하고 있다고 확신 하는 경우에만 사용 하십시오 . 이를 지정 하거나 지정 하지 않을 수 있습니다 . 독립적 인 설정입니다.-i-f-r

평소와 같이 스위치를 결합 할 수 있습니다 : rm -r -iis rm -ri, and rm -r -fis 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 {} \;

기본적으로 정규식을 사용하여 결과에서 제외 할 디렉토리를 선택한 다음 나머지 파일을 제거합니다. 다른 누군가가 필요로 할 경우를 대비하여 여기에 넣고 싶었습니다.


답변