
현재 작업 디렉토리의 모든 내용을 제거하고 싶습니다. 효율적이고 우아한 방법으로 수행하는 방법은 무엇입니까?
여러 개의 파일과 디렉터리가 있고 그 중 일부는 다음과 같이 점으로 시작합니다.
touch .abc; touch abcd ; mkdir foobar; touch "file name" "#"
나는 이 디렉토리를 비워두기 위해 posix와 호환되고 우아한 솔루션을 찾고 있습니다. 내 아이디어 중 일부를 게시할 예정이지만 그 중 완벽한 것은 없습니다.
답변1
rm -rf -- * .*
이것은 이식 가능하고 작동하지만 를 제외하면 경고가 발생하기 때문에 보기 흉합니다 zsh
.
rm: cannot remove directory: `.'
rm: cannot remove directory: `..'
답변2
이 시도:
find . -maxdepth 1 -not -name \. -exec rm -rf \{\} ;
답변3
POSIX적으로:
rm -rf -- * .[!.]* ..?*
파일 목록이 너무 크면 실패할 수 있지만 다음은 그렇지 않습니다.
find . ! -name . -prune -exec rm -rf {} +
와 함께 zsh
:
rm -rf -- *(D)
답변4
어때?
rm -rf * .[a-z]* .[A-Z]* .[0-9]*
그게 효과가 있겠어? 아니면 일치시킬 다른 파일 이름 패턴이 있습니까?