Shell-Script
刪除目錄中的舊文件,但異常文件中存在的文件除外
我正在編寫一個 shell 腳本來刪除目錄中的舊文件(超過 60 天),除了少數文件,這些文件名保存在另一個目錄中的異常文件中。
我知道以下命令適用於一個異常文件,但我需要檢查異常文件列表
find . ! -name 'file.txt' -type f -exec rm -f {} +
假設您的文件具有合理的名稱(即它們沒有嵌入換行符),這樣的事情應該可以工作:
find . -mtime +60 | fgrep -v -x -f exceptions.txt | xargs -d '\n' rm -f
替換
rm -f
為ls -1
先進行空執行。完全按照find
in列印的路徑放置路徑exceptions.txt
。
我認為沒有這樣的選項,您可以使用排除列表
find
建構命令:printf
find . -name "*.txt" $(printf "! -name %s " $(cat file.txt)) -mtime +60 -exec rm -f {} +
file.txt
將有要在find
命令中排除的文件列表。