我可以在Linux中使用什麼命令檢查文件名末尾是否包含~
的給定目錄(或其子目錄)中的文件?用於刪除所有文件的Linux命令
例如,如果我在一個名爲t
的目錄中包含許多子目錄等,我想刪除所有以~
結尾的文件。
我可以在Linux中使用什麼命令檢查文件名末尾是否包含~
的給定目錄(或其子目錄)中的文件?用於刪除所有文件的Linux命令
例如,如果我在一個名爲t
的目錄中包含許多子目錄等,我想刪除所有以~
結尾的文件。
你可以使用find,grep,rm組合,類似於
查找| grep「〜」| xargs的RM -f
也許別人有更好的想法:)
這一個也會刪除〜b等等 – njsf 2009-08-06 02:17:46
find ./ -name '*~' -print0 | xargs -0 rm -f
這裏find
將搜索目錄./
和所有子目錄,濾波匹配水珠「*〜」和打印他們的文件名(含proper quoting courtesy of alberge)。將結果傳遞給xargs
以附加到rm -f
,並將生成的字符串運行在shell中。您可以使用多個路徑,並且還有很多其他可用的過濾器(只讀man find
)。
小心文件名中含有空格!
find ./ -name "*~" -type f -print0 | xargs -0 rm
與GNU找到
find /path -type f -name "*~" -exec rm {} +
或
find /path -type f -name "*~" -delete
+1,這兩種解決方案避免了爲每個要刪除的文件分配一個新的進程;第二個稍微好一些,因爲如果你要刪除大量的文件,它永遠不會遇到命令行長度限制的問題。 – 2009-08-06 02:20:55
RM -r *〜對我的作品 – 2009-08-06 02:14:04
可能* *似乎工作,@Shadow,但我認爲那是因爲你'做錯了:-)如果你在一個帶有x〜文件的目錄中運行該命令,* shell *會在rm發現它之前將*〜擴展到x〜 - 這意味着沒有子目錄會被完成。而且,如果當前目錄中沒有VIM備份文件,則shell會抱怨。 – paxdiablo 2009-08-06 02:32:04