우아한 방법으로 디렉토리 내용 삭제

우아한 방법으로 디렉토리 내용 삭제

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

여러 개의 파일과 디렉터리가 있는데 그 중 일부는 점으로 시작합니다. 예를 들면 다음과 같습니다.

touch .abc; touch abcd ; mkdir foobar; touch "file name" "#"

나는 이 디렉토리를 비워두기 위한 posix 호환 가능하고 우아한 솔루션을 찾고 있습니다. 내 아이디어 중 일부를 게시할 예정이지만 그 중 어느 것도 완벽하지 않습니다.

답변1

rm -rf -- * .*

이것은 이식 가능하고 작동하지만 with 외에도 다음과 같은 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]*

그게 효과가 있을까요? 아니면 일치해야 하는 다른 파일 이름 패턴이 있습니까?

관련 정보