Bash
在 linux 中,如何刪除除 *.txt 格式之外的所有文件?
我知道如何刪除
txt
目前目錄下的所有文件rm *.txt
。有誰知道如何刪除目前目錄中的所有文件,除了txt
文件?
您可以使用
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
如果您只想刪除除 ‘*.txt’ 之外的所有文件,則可以使用以下命令:
$ find . -type f ! -name "*.txt" -exec rm -rf {} \;
但是如果您還想刪除目錄以及文件,那麼您可以使用它:
$ find . ! -name "*.txt" -exec rm -r {} \;