
在 bash 中,如何尋找並刪除包含特定檔案的目錄(僅當該檔案早於 X 分鐘時)。
有 這個答案它會尋找包含特定檔案的目錄。但是,尚不清楚如何添加文件早於 X 分鐘的條件。
答案1
編輯: 更簡單的方法:
find . -name 'foobar.dat' -mmin +3 -exec bash -c 'rm -vr "$(dirname "$1")"' bash {} \;
基本上,就是找到符合的文件,然後刪除它們的父目錄。第二個“bash”字串可以是任何內容,它只是為了避免將檔案名稱放入“$0”中(儘管這似乎工作正常...)
以前不太優雅的解決方案:
我會用另一種方式解決這個問題:
建立一個執行以下操作的小腳本
rm -r $(dirname $1)
(即刪除參數的父目錄)找到所有此類文件,並對它們調用腳本:
find . -name 'foobar.dat' -mmin +3 -exec rmparent_script {} \;