我有一個服務器,它在日誌目錄中創建了幾個日誌文件。由於這種日誌記錄機制,它在我的服務器上佔用了很多磁盤空間。我想編寫一個腳本,刪除所有超過一天的文件並保留最新的文件。刪除超過一天的文件
我可以使用ls -trl
命令以排序的形式列出目錄。但我無法理解如何刪除這些文件。請幫忙。
我有一個服務器,它在日誌目錄中創建了幾個日誌文件。由於這種日誌記錄機制,它在我的服務器上佔用了很多磁盤空間。我想編寫一個腳本,刪除所有超過一天的文件並保留最新的文件。刪除超過一天的文件
我可以使用ls -trl
命令以排序的形式列出目錄。但我無法理解如何刪除這些文件。請幫忙。
嘗試使用RM和find命令,如:
find . -mmin +$((60*24)) -exec rm {} \;
find . -mtime +1 -exec rm {} \;
雖然代碼是讚賞,它應該總是有一個附帶的解釋。這不需要很長時間,但它是預期的。 – peterh
我同意這一點。我只是留下了我的答案,因爲與我同時發佈的其他答案實際上是相同的,並進行了解釋。沒有看到編輯我的觀點。 –
你不想ls
,你想find
。
它有一個整潔的參數-mtime
,它將結果限制爲特定的時間增量,而-exec
允許您提供命令來運行結果。
因此,例如,
find -mtime +10 -name "*tmp*" -exec rm {} \;
是否上的所有文件rm
年齡超過10
天,在名稱中tmp
。
噢,小心點。
非常小心。
使用['find(1)'](http://linux.die.net/man/1/find),注意不要在腳下自己拍攝。 – unwind