Files

更新多個文件訪問時間的簡單方法

  • June 16, 2019

我有一個包含幾個子文件夾和文件的文件夾。我在一台伺服器上工作,任何超過 60 天的文件都會被自動刪除。有什麼簡單的命令來更新文件的訪問時間(atime),這樣就不會發生這種刪除(有時我不處理文件超過 60 天,設置所有文件很痛苦再次文件夾)?

我想到了一個很粗暴的方法——使用

vim *
vim */* ... and so on

打開所有子文件夾,然後用 :q 關閉它們。然而,這又是一個乏味的過程。關於如何設置腳本或使用 vim 以外的工具的任何想法?

touch– 更改文件訪問和修改時間

觸摸(1)

注意:雖然您可以這樣做,touch *但不會遞歸到子目錄中,*如果不存在文件,則會創建一個名為的文件。一個更強大的解決方案是使用:

find /path/to/root_dir/ -exec touch -a {} \;

此外,您似乎只想更新目錄的修改時間?這可能會更好,因為我確定該伺服器上的刪除策略是為了節省空間,並且您不想盲目地保留所有文件只是為了節省一些。要僅觸摸目錄,您可以執行以下操作:

find /path/to/root_dir/ -type d -exec touch -a {} \;

注意:touch沒有選項會將訪問時間和修改時間都修改為目前時間,其中-a只會更新訪問時間。

此外,如果您想要一個命令來顯示哪些文件即將刪除,您可以執行類似的命令;

find /path/to/root_dir/ -atime +55

這將列出/path/to/root_dir/訪問時間超過 55 天的所有文件。這可能有助於讓您知道哪些文件即將達到最大使用期限。55如果您想進一步檢查,您可以更改為另一個號碼。

引用自:https://unix.stackexchange.com/questions/524988