Unix
將文件移動到早於某個日期的另一個目錄
我正在尋找一種解決方案來移動從今天起一年前的文件。我的日誌分區已滿,但我無法刪除它們。他們需要很長時間。無論如何,我想出的一種解決方案是:
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 {} \;