shell指令碼之刪除固定天數之前的檔案
需求:刪除30天之前的檔案
該需求一般用於自動清理程式日誌,程式日誌按每天分割之類的場景。
#!/bin/bash #檔案目錄 addr=/apps/logs #需要刪除的檔名稱 file_name="*.log" #天數 days=30 #查詢並刪除檔案 find $addr -type f -mtime +$days -name $file_name -exec rm -rf {} \; #查詢並刪除空目錄 find $addr -type d -empty -delete
注意:這裡是判斷檔案最近的改動時間。可以使用stat命令進行時間確認,如下,在一些特殊情況下,本來是24日檔案,最新修改的時間是25日,所以這種情況下,會計算該檔案為25日的檔案