Files
查找匹配模板的文件並刪除
我有大量的文件夾和文件。我需要對其進行解析並僅找到具有副檔名的那些
xmp
以最終將其刪除。我怎樣才能做到這一點並跟踪已刪除文件的名稱?
查找:我知道我可以使用
find /path -name "*.xmp"
但是如何在輸出上執行兩個命令?保留文件路徑和名稱removelist.txt
並將其刪除。
使用 GNU查找 **
-fprint
和-delete
**操作:find . -name "*.xmp" -fprint "removelist.txt" -delete
-fprint file
- 將完整的文件名列印到文件file
中。如果執行file
時不存在find
,則創建;如果確實存在,則將其截斷。-delete
- 刪除文件
一種方法是使用以下命令執行複合 shell 命令
-exec
:find /path -name '*.xmp' -exec sh -c 'echo "$1" >> removelist.txt && rm -f "$1"' sh {} \;
在子 shell 中
echo
(附加到removelist.txt
)和rm
將針對每個找到的文件執行。注意:最後一個
sh
是因為我們使用的是-c
. 使用該標誌,後面的第一個參數是參數 0 或者$0
應該是 shell 的名稱。必須承認,@RomanPerekhrest 對於這種特殊情況有一個更好的答案,但是使用這裡的技術,您可以做各種可能沒有專用
find
標誌的事情。:)