현재 작업 디렉토리의 모든 내용을 삭제하고 싶습니다. 이를 효율적이고 우아하게 수행하는 방법은 무엇입니까?
여러 개의 파일과 디렉터리가 있는데 그 중 일부는 점으로 시작합니다. 예를 들면 다음과 같습니다.
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]*
그게 효과가 있을까요? 아니면 일치해야 하는 다른 파일 이름 패턴이 있습니까?