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


331

터미널 창에서 :

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

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

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


나중에 파일을 복원하려는 경우에는 "rm"을 사용하지 마십시오. 사용 "RM-쓰레기" github.com/nateshmbhat/rm-trash
바트 Natesh

답변:


759
rm -rf some_dir

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

조심해!


26
+1하고 "주의 해주세요!" part .... 확실히 "Sawzall"명령으로 좋은 날을 나쁜 날로 빠르게 바꿀 수 있습니다.
itsmatt

5
같은 해달라고 "# RF RM은 /"당신은 후회 것이다 :
다스 베이더

1
@itsmatt : 당신은 그들이 말하는 것을 알고 있습니다 ... 누군가에게 Sawzall을 주면 갑자기 모든 문제가 몇 시간의 재미처럼 보입니다!
Jim Lewis

164
Mac에서? 대신이 작업을 수행하십시오 : brew install trash그러면 Prestige 스타일을 에테르로 trash -rf some_dir지우지 않고 원하지 않는 디렉토리를 휴지통으로 이동합니다 . ( 출처 )
zakdances

4
"쓰레기"접근법은 훌륭합니다!
anopres

59
rm -rf *

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

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


17
rm -rf는 매우 위험한 명령이므로, 항상주의해서 삭제 될 폴더를 지정해야합니다.
eomeroff

8
다음에 ls -R *의해 삭제 될 내용을 확인하기 위해 먼저 실행하는 방법rm -rf *
Hammad Khan

이것은 나를 위해 잘 작동합니다, 감사합니다.
Monica Hübner 2016

14

그렇습니다. -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 유닉스 시스템입니다.


1
위에 언급 된 모든 옵션이 나열된 모든 유닉스 맛 중에서 표준이지만 약간의 차이점도 있습니다. 예를 들어, OS X (Linux는 아님)가 "rm -d"파일이나 빈 디렉토리를 제거합니다. 여전히 OS X가 내부적으로 BSD라는 점에서 +1입니다.
David Gelhar

진정한 --- POSIX 하위 집합 Unixen에서 일관되게 작동하도록 보장 (거의)이지만, 아무것도 외부 그 수도 있고하지 않을 수 있습니다.
Antal Spector-Zabusky

2

그래서 나는 일부 디렉토리와 파일을 제외하고 디렉토리의 모든 파일을 제거하는 방법을 온전히 찾고있었습니다. 많은 검색을 한 후 find를 사용하여 수행 할 수있는 방법을 고안했습니다.

find -E . -regex './(dir1|dir2|dir3)' -and -type d -prune -o -print -exec rm -rf {} \;

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.