[英]How to recursively delete multiple files with different extensions?
我正在嘗試編寫一個命令,以從當前目錄及其所有相關子目錄中遞歸刪除具有不同擴展名(*.extension1、*.extension2 等)的多個文件。
到目前為止,我從另一篇文章中得到了這個命令,但我無法鍛煉如何使它適應同一命令行中的多個文件:
find . -name "*.extension1" -type f -delete
是不是像下面這么簡單?
find . -name "*.extension1";"*.extension2" -type f -delete
附帶說明一下,這些都是我不需要的 output 文件,但並非所有文件都必須始終為 output,因此某些擴展名可能不存在。 這就像一般的清理命令一樣。
find . \( -name "*.extension1" -o -name "*.extension2" \) -type f -delete
查找文檔(-name“ .py”-o -name“ .html”) - exec file {} \\;
要么
find . -regextype posix-egrep -regex ".*\.(extension1|extension2)$" -type f -delete
只需添加更多選項。 正則表達式解決方案也適用,但這個更好更安全。
find . \( -name '*.ext1' -or -name '*.ext2' \) -type f -delete
編輯:您可能需要-or
也可以。 在刪除之前,首先測試它而不使用-delete
選項。 (2)根據gniourf_gniourf的建議添加了一對()
。
也許regexp會幫助你
find . -regextype posix-awk -regex "(.*.ext1|.*.ext2)" -type f -delete
另一個使用rm
的解決方案:
rm -rf ./**/*.{txt,nfo,jpg,jpeg,png,exe,url}
如果您也想刪除其他文件,例如那些以sample.
只需添加:
rm -rf ./**/*.{txt,nfo,jpg,jpeg,png,exe,url} ./**/*/sample.*
這個簡單的命令將在該目錄中以遞歸方式刪除extension1和extension2的所有文件。 find . -name *.extension1 -o -name *.extentions2
find . -name *.extension1 -o -name *.extentions2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.