Linux回收站定時清理設置方法
Linux系統中,用戶級回收站的默認路徑通常為~/.local/share/Trash/,其中files/子目錄存儲實際刪除的文件,info/子目錄存儲文件元數據(如刪除時間、原路徑)。部分桌面環境(如GNOME、KDE)的文件管理器會使用此路徑,若自定義過回收站位置,需替換為實際路徑。
rm命令+cron定時任務(簡單直接)打開終端,輸入crontab -e命令,進入crontab編輯模式(首次使用會提示選擇編輯器,選nano或vim均可)。
在文件末尾添加一行,指定清理時間和命令。例如:
0 2 * * * rm -rf ~/.local/share/Trash/files/*0 3 * * 0 rm -rf ~/.local/share/Trash/files/*(0表示周日,*表示任意值)。按Ctrl+X組合鍵,再按Y確認保存,最后按Enter退出編輯器。cron會自動加載新任務。
trash-cli工具(更靈活,支持按天數清理)根據系統包管理器安裝(需聯網):
sudo apt install trash-clisudo yum install trash-clisudo dnf install trash-cli。創建腳本文件(如~/cleanup_trash.sh),內容如下(設置刪除30天前的文件):
#!/bin/bash
# 設置回收站路徑
TRASH_DIR="$HOME/.local/share/Trash/files"
# 刪除30天前的文件
find "$TRASH_DIR" -type f -mtime +30 -exec rm -f {} \;
或直接使用trash-empty命令(更規范):
#!/bin/bash
# 清空超過30天的回收站文件
trash-empty 30
保存并退出編輯器。
在終端輸入chmod +x ~/cleanup_trash.sh,使腳本可執行。
編輯crontab文件(crontab -e),添加以下內容(例如每天凌晨1點執行):
0 1 * * * /home/your_username/cleanup_trash.sh(替換為腳本實際路徑)。
若需清理所有用戶的回收站(如服務器環境),可創建系統級cron任務:
編輯/etc/cron.daily/empty-trash文件(若目錄不存在,先運行sudo mkdir -p /etc/cron.daily):
#!/bin/bash
# 遍歷所有用戶的主目錄,清理其回收站
for USER_HOME in /home/*; do
if [ -d "$USER_HOME/.local/share/Trash/files" ]; then
rm -rf "$USER_HOME/.local/share/Trash/files/*"
rm -rf "$USER_HOME/.local/share/Trash/info/*"
fi
done
賦予執行權限:sudo chmod +x /etc/cron.daily/empty-trash。
root權限)。TRASH_DIR變量或rm命令路徑。rm -rf ~/.local/share/Trash/files/*或trash-empty 30),確認無誤后再添加定時任務。