我想知道是否可以刪除目錄中的每個文件,但具有特定擴展名的文件?刪除一切,但具有指定擴展名的文件
所以,這樣的事情會刪除所有,但PNG文件:
find "$target" ! -name "*.png" -printf '%f\n' -delete;
但我會有關的文件夾中刪除一切,除* .PNG和,可以說,* .txt文件?
謝謝
我想知道是否可以刪除目錄中的每個文件,但具有特定擴展名的文件?刪除一切,但具有指定擴展名的文件
所以,這樣的事情會刪除所有,但PNG文件:
find "$target" ! -name "*.png" -printf '%f\n' -delete;
但我會有關的文件夾中刪除一切,除* .PNG和,可以說,* .txt文件?
謝謝
find
讓您使用-o
布爾or
:
find "$target" ! \(-name "*.png" -o -name "*.txt" \) -printf '%f\n' -delete;
謝謝親切先生,作品像一個魅力:) – user1039063
你可以考慮做這樣的事情,刪除$目標下的每個文件,該文件是不是PNG文件:
find $target -name '*' | grep -v '\.(png|txt)$' | xargs rm
要查找僅pdf和txt文件(要刪除,請用rm替換printf)
printf "%s\n" *.{pdf,txt}
要查找所有,但PDF和TXT文件
shopt -s extglob nullglob
printf "%s\n" !(*.pdf|*.txt)
如果你想訪問子目錄
shopt -s extglob nullglob globstar
printf "%s\n" **/!(*.pdf|*.txt)
謝謝你先生,你的方法工作得很好,但我接受了其他人的迴應,因爲使用了find命令。 – user1039063
的可能重複[需要一個刪除除所有文件shell腳本\ *。 .pdf](http://stackoverflow.com/questions/4702577/need-a-shell-script-that-deletes-all-files-except-pdf) –