txt
현재 디렉토리의 모든 파일을 삭제하는 방법을 알고 있습니다 rm *.txt
. 현재 디렉토리에서 파일을 제외한 모든 파일을 삭제하는 방법을 아는 사람이 있습니까 txt
?
답변1
당신은 그것을 사용할 수 있습니다 find
:
find . -type f ! -name '*.txt' -delete
또는 bash의 확장된 와일드카드 기능:
shopt -s extglob
rm *.!(txt)
또는 zsh에서:
setopt extendedglob
rm *~*.txt(.)
# || ^^^ Only plain files
# ||^^^^^ files ending in ".txt"
# | \Except
# \Everything
답변2
그냥 전부 삭제하고 싶다면문서'*.txt' 외에도 다음 명령을 사용할 수 있습니다.
$ find . -type f ! -name "*.txt" -exec rm -rf {} \;
하지만 삭제하고 싶다면목차파일과 함께 다음을 사용할 수 있습니다.
$ find . ! -name "*.txt" -exec rm -r {} \;
답변3
이를 수행하는 방법에는 여러 가지가 있습니다. 하지만 가장 간단한 방법은 (bash)입니다.
shopt -s extglob
rm !(*.txt)
답변4
한 가지 솔루션은 다음을 수행하지 않습니다 find
.
mv dir/*.txt otherdir/
rm -r dir
mv otherdir dir
이는 모든 유형의 쉘에서 작동합니다.