우아한 방법으로 디렉토리 내용을 제거하십시오.

우아한 방법으로 디렉토리 내용을 제거하십시오.

현재 작업 디렉토리의 모든 내용을 제거하고 싶습니다. 효율적이고 우아한 방법으로 수행하는 방법은 무엇입니까?

여러 개의 파일과 디렉터리가 있고 그 중 일부는 다음과 같이 점으로 시작합니다.

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]*

그게 효과가 있겠어? 아니면 일치시킬 다른 파일 이름 패턴이 있습니까?

관련 정보