2010-04-15 4 views
237

터미널 창에서 :
rm 명령을 사용하면 파일 만 제거 할 수 있습니다.
rmdir 명령을 사용하면 빈 폴더 만 제거됩니다.터미널을 통해 파일과 디렉토리를 빠르게 제거하는 방법 (bash 쉘)

파일과 폴더가있는 디렉토리가있는 경우 등 모든 치명적인 명령 입력없이 모든 파일과 폴더를 삭제할 수있는 방법이 있습니까?

차이가 있다면 저는 Microsoft DOS 나 Linux가 아닌 터미널에서 mac bash 쉘을 사용하고 있습니다. "힘"-f

답변

556
rm -rf some_dir 
"재귀"-r

주의를 (확인 메시지를 표시하지 않습니다)!

+20

+1 그리고 기꺼이 "조심하세요!"라고 덧붙였습니다. 부분 ... 확실히 좋은 날을 나쁜 것으로 바꿀 수있는 "Sawzall"명령. 부주의하게 휘두르는 경우. – itsmatt

+3

dont do "# rm -rf /" – DarthVader

+1

@itsmatt : 사람들이 Sawzall을 주면 갑자기 모든 문제가 재미있어 보여요! –

34
rm -rf * 

현재 디렉토리의 모든 파일 (폴더 & 개)을 제거하겠습니까?

조심하세요! 올바른 디렉토리에 있는지 확실히 알 수있는 경우에만이 명령을 실행하십시오.

+14

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

+6

'rs -R *'를 먼저 실행하여'rm -rf * '에 의해 삭제 될 것을 확인하십시오. –

+0

이것은 저에게 잘 돌아갑니다, 고마워요. –

11

예, 있습니다. -r 옵션을 사용하면 rmr 에코로 지정되며 해당 인수를 기점으로 전체 파일 계층 구조를 제거합니다. 즉, 디렉토리가 주어지면 모든 내용을 제거한 다음 효과적으로 rmdir을 수행합니다.

다른 두 가지 옵션은 -i-f입니다. -i을 나타내고,nteractive를 나타내며; rm은 각 파일을 삭제하기 전에 메시지를 표시합니다. -ff orce를 나타냅니다. 묻지 않고 모든 것을 삭제합니다. -i은 더 안전하지만 -f은 빠릅니다. 인 경우에만 사용하십시오.을 올바르게 삭제하면됩니다. -r으로 지정할 수 있습니다. 그것은 독립적 인 설정입니다.

평소와 같이 스위치를 결합 할 수 있습니다. 은 rm -ri이고 rm -r -frm -rf입니다.

은 또한 당신이 배우고 것은 모든 유닉스 OS에 bash 적용 참고 : 사실 등 OS X, 리눅스, FreeBSD의, rm의 구문은 모든 유닉스 OS에 거의 모든 쉘에서 동일 . 후드 아래에있는 OS X는 실제로 BSD Unix 시스템입니다.

+1

위에서 언급 한 모든 옵션이 나열된 모든 유닉스 버전 중에서 표준이지만 몇 가지 차이점이 있습니다. 예를 들어 OS X (Linux 제외)는 파일이나 빈 디렉토리를 제거하는''rm -d ''를 가지고 있습니다. 여전히, OS X이 BSD 내부적 인 점에 +1. –

+0

사실 --- * POSIX 하위 집합 *은 (거의) Unixen에서 일관되게 작동하지만 그 밖의 모든 것이 보장 될 수도 있고 그렇지 않을 수도 있습니다. –

2

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

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

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

관련 문제