在Linux系統中,可以通過配置文件和腳本來實現回收站的有效期。以下是一個簡單的示例,使用Bash腳本和inotifywait
工具來監控回收站目錄,并在超過指定時間后自動刪除文件。
首先,確保你的系統上安裝了inotify-tools
包,它包含了inotifywait
工具。
sudo apt-get update
sudo apt-get install inotify-tools
創建一個名為trash_cleanup.sh
的腳本文件,并添加以下內容:
#!/bin/bash
# 回收站目錄
TRASH_DIR="$HOME/.local/share/Trash/files"
# 有效期(以天為單位)
EXPIRATION_DAYS=7
# 獲取當前日期的時間戳
CURRENT_TIMESTAMP=$(date +%s)
# 遍歷回收站目錄中的所有文件
for FILE_PATH in "$TRASH_DIR"/*; do
# 獲取文件的最后修改時間戳
FILE_MODIFICATION_TIMESTAMP=$(stat -c %Y "$FILE_PATH")
# 計算文件的年齡(以秒為單位)
FILE_AGE=$((CURRENT_TIMESTAMP - FILE_MODIFICATION_TIMESTAMP))
# 如果文件的年齡大于有效期,則刪除文件
if [ $FILE_AGE -gt $((EXPIRATION_DAYS * 86400)) ]; then
rm -rf "$FILE_PATH"
echo "Deleted expired file: $FILE_PATH"
fi
done
chmod +x trash_cleanup.sh
使用cron
來定期運行這個腳本。編輯當前用戶的crontab
文件:
crontab -e
在打開的編輯器中添加以下行,以每分鐘運行一次腳本:
* * * * * /path/to/trash_cleanup.sh
將/path/to/trash_cleanup.sh
替換為實際的腳本路徑。
保存并退出編輯器?,F在,cron
將會每分鐘運行一次trash_cleanup.sh
腳本,刪除回收站中超過有效期的文件。
EXPIRATION_DAYS
變量的值。通過以上步驟,你就可以在Linux系統中設置回收站的有效期了。