在 bash 中:如何尋找並刪除包含特定檔案的目錄(僅當該檔案早於 X 分鐘時)

在 bash 中:如何尋找並刪除包含特定檔案的目錄(僅當該檔案早於 X 分鐘時)

在 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 {} \;
    

相關內容