Files

查找匹配模板的文件並刪除

  • November 11, 2018

我有大量的文件夾和文件。我需要對其進行解析並僅找到具有副檔名的那些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標誌的事情。:)

引用自:https://unix.stackexchange.com/questions/419798