Aix

如何遞歸刪除舊文件並修剪產生的空目錄?

  • December 22, 2020

我們使用 AIX 伺服器在嵌套目錄結構中存放成千上萬個小文件。我正在嘗試編寫一個腳本,該腳本將遞歸刪除舊文件,然後刪除包含目錄(如果該目錄是目錄中的最後一個文件)。

出於範例的目的,假設任何超過 60 天的文件都是“舊文件”。

這聽起來簡單易行,但我環顧了一段時間,找不到解決方案。是否有一些組合find和它的標誌,也許用rmdir它來完成上述工作?

你說過你在 AIX 上。如果我沒記錯的話,我認為基本的 shell 命令可以解決問題。

find /path/to/files* -mtime +60 -exec rm {} \;
find /path/to/files -type d -exec rmdir 2>/dev/null {} \;

如果您通過修改時間超過 60 天來定義“早於”,則以下命令將刪除您的舊文件:

find /your/dir -mtime +60 -exec rm -f {} \;

要修剪空目錄,您可以使用以下命令:

find /your/dir -type d -exec rmdir {} \;

它並不完全找到空目錄,但由於 rmdir 不會刪除包含文件的目錄,它只會刪除空目錄。

引用自:https://serverfault.com/questions/355565