獲取查找輸出以稍後刪除文件

獲取查找輸出以稍後刪除文件

我想從這個命令中獲得結果:

find . -type f -size +200M -exec ls -lh {} \;

將內容儲存到某種形式的變數中,然後刪除找到的檔案。

我怎樣才能做到這一點?

答案1

您不需要find僅儲存 in 變數的結果才能刪除檔案(除非您有一些未提及的特定要求),因為提供了可以為您執行此操作的find特殊參數:-delete

find . -type f -size +200M -print -delete

作為ls不建議解析命令的輸出

如果您確實想解析 返回的文件find,您需要執行以下操作:

find . -type f -size +200M -print0 | xargs -0 rm -v

由於您無法將 shell 變數保留為空字符,並且您不想在空格上中斷腳本(這可能會導致巨型蟲子),解決方法可能是將清單儲存在臨時檔案中或序列化資料(例如base64)。

相關內容