shell指令碼之刪除固定天數之前的檔案

难止汗發表於2024-09-26

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日的檔案

相關文章