현재 디렉토리를 포함한 현재 디렉토리에서 모든 파일을 삭제하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/550922

문제

현재 디렉토리를 포함한 현재 디렉토리에서 모든 파일과 하위 디렉토리를 삭제하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

GNU 도구를 갖춘 Bash에서는 그렇게 할 것입니다 (대부분의 경우 안전해야합니다).

rm -rf -- "$(pwd -P)" && cd ..

Bash 아래에 있지 않고 GNU 도구가 없으면 다음을 사용합니다.

TMP=`pwd -P` && cd "`dirname $TMP`" && rm -rf "./`basename $TMP`" && unset TMP

이것이 더 안전한 이유 :

  • 인수 목록을 끝내십시오 -- 디렉토리가 대시로 시작하는 경우 (비 배시 : ./ 파일 이름 이전)
  • pwd -P 뿐만 아니라 pwd 우리가 실제 디렉토리에 있지 않고 상징적 인 디렉토리에있는 경우.
  • "디렉토리에 공백이 포함 된 경우에 인수 주변

일부 임의 정보 (Bash 버전) :

  • 그만큼 cd .. 결국 생략 할 수 있지만, 당신은 그렇지 않으면 존재하지 않는 디렉토리에있을 것입니다 ...

편집하다: kmkaplan이 지적했듯이 -- 필요한 것은 필요하지 않습니다 pwd 항상 시작하는 전체 경로 이름을 반환합니다 / 유닉스에서

다른 팁

olddir=`pwd` && cd .. && rm -rf "$olddir"

그만큼 cd .. 필요합니다. 그렇지 않으면 현재 디렉토리를 제거 할 수 없으므로 실패합니다.

rm -fr "`pwd`"

DOS / Windows CMD에서는 이것이 가능할 것이라고 생각하지만 명령간에 데이터를 파이프하는 방법을 찾을 수는 없습니다. 다른 사람이 그 수정 사항을 알고 있습니까?

FOR /F %i IN ('cd') DO SET MyDir=%i | CD .. | RD /S %MyDir%

운영 체제? *닉스 기반 재료에서 'rm -rf 디렉토리/'를 찾고 있습니다.

참고 : '재귀'를위한 '-r'플래그는 위험 할 수 있습니다!

대상 폴더의 상위 폴더로 돌아가서 'rm -rf yourfolder'를 사용할 수 있습니다. 또는 'rm -rf *'를 사용하여 현재 폴더에서 모든 파일과 하위 폴더를 삭제할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top