Shell-Script

刪除超過 500 天的文件

  • July 29, 2016

我有一個包含 2010 年文件的目錄。我想刪除所有超過 500 天的文件,我試過這個:

find /var/log/arc/* -type f -mtime +500 -delete {}\;      

但我明白了:

-bash: /usr/bin/find: Argument list too long

據我所知,這意味著文件太多而find無法處理。但即使我放+2000了 3 年以上,我仍然得到這個。

我在這裡缺少什麼?

您缺少find不需要文件列表作為輸入的內容。問題是 glob/var/log/arc/*擴展到太多文件。但是,find預設情況下會遞歸到子目錄中,因此根本不需要使用 glob:

find /var/log/arc/ -type f -mtime +500 -delete

-delete是一個非標準謂詞。如果您的find實現不支持它,您可以使用:

find /var/log/arc/ -type f -mtime +500 -exec rm -f {} +

反而。

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