Unix

將文件移動到早於某個日期的另一個目錄

  • September 30, 2018

我正在尋找一種解決方案來移動從今天起一年前的文件。我的日誌分區已滿,但我無法刪除它們。他們需要很長時間。無論如何,我想出的一種解決方案是:

find /sourcedirectory -mtime 365 -exec mv "{}" /destination/directory/ \;

這行得通嗎?由於“ -mtime 365 ”而詢問這會將舊文件從今天移動到新位置嗎?

謝謝!

你幾乎是對的。-mtime 365將是 365 天前的所有文件。你想要那些 365 天或更長時間的,這意味著+在這樣的數字前添加一個-mtime +365

您可能還對-maxdepth 1阻止您移動子目錄中的項目的標誌感興趣。

如果您想確保您只是在移動文件,而不是目錄,請添加-type f到該行。

在我們添加的行的末尾,我們\;知道find這是我們正在執行的命令的結尾。

所以該行應該是:

find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec mv "{}" /destination/directory/ \;

為了安全起見,首先執行 ls -l 而不是 mv - 這樣您就可以提前檢查是否獲得了所需的文件,然後再使用 mv 重新執行它,如下所示:

find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec ls -l {} \;

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