Linux中回收站的管理方法
查看回收站內容
默認情況下,用戶刪除的文件會存儲在~/.local/share/Trash/
目錄下,其中files/
子目錄存放實際文件,info/
子目錄保存文件元數據(如刪除時間、原路徑)??赏ㄟ^以下命令查看:
ls ~/.local/share/Trash/files/ # 查看回收站文件
ls ~/.local/share/Trash/info/ # 查看回收站文件信息
恢復文件
將回收站中的文件移回原路徑即可恢復,例如:
mv ~/.local/share/Trash/files/example.txt ~/Documents/ # 恢復example.txt到Documents目錄
圖形界面用戶可通過Nautilus(GNOME)、Dolphin(KDE)等文件管理器的“回收站”入口直接恢復。
清空回收站
刪除回收站中的所有文件(謹慎操作):
rm -rf ~/.local/share/Trash/files/* # 清空文件
rm -rf ~/.local/share/Trash/info/* # 清空元數據
圖形界面用戶可通過右鍵點擊回收站圖標選擇“清空回收站”完成。
定時自動清理
使用cron
設置定時任務,例如每天凌晨1點清空回收站:
crontab -e # 編輯當前用戶的cron任務
添加以下內容:
0 1 * * * rm -rf ~/.local/share/Trash/files/* # 清空文件
0 1 * * * rm -rf ~/.local/share/Trash/info/* # 清空元數據
修改保留時間
編輯~/.config/nautilus/desktop-metadata
文件(部分發行版可能為~/.config/gtk-3.0/gtk.css
),添加或修改以下內容:
[Trash]
MaxAge=30d # 設置文件保留30天,超過則自動刪除
更改存儲路徑
在~/.config/nautilus/desktop-metadata
文件中添加以下內容,將回收站路徑修改為自定義目錄(如/mnt/external_drive/trash
):
[Trash]
Location=/mnt/external_drive/trash
安裝trash-cli
根據發行版選擇對應命令安裝:
sudo apt-get install trash-cli
sudo dnf install trash-cli
sudo yum install trash-cli
基本操作
trash list
(顯示文件名、刪除時間及大?。?/li>
trash restore example.txt
(恢復指定文件,支持通配符如*.docx
)trash empty
(清空所有內容;trash empty 7
可清空7天前的文件)trash /path/to/file
(替代rm
命令,避免誤刪)配置trash-cli
編輯~/.config/trashrc
文件,自定義回收站行為:
[Trash]
path=/home/user/custom_trash # 修改回收站存儲路徑
max_size=1073741824 # 設置回收站最大容量(1GB,單位:字節)
retention_days=60 # 設置文件保留60天
GNOME(Nautilus)
打開“設置”→“存儲”→“刪除文件”,可調整“保留回收站文件的時間”(如7天、30天)和“回收站大小限制”(如10GB)。
KDE(Dolphin)
打開“系統設置”→“存儲”→“文件操作”,在“回收站”選項卡中設置“保留天數”和“最大大小”。
XFCE(Thunar)
打開“設置管理器”→“文件管理器”→“行為”,勾選“使用回收站”并調整相關參數。
創建回收站目錄
在用戶主目錄下創建.trash
隱藏目錄:
mkdir ~/.trash
重定義rm命令
編輯~/.bashrc
(或~/.zshrc
)文件,添加以下內容:
alias rm='mv -t ~/.trash "$@"' # 將rm命令別名為移動文件到.trash目錄
alias rl='ls ~/.trash' # 查看回收站內容
alias ur='undelfile' # 恢復文件函數
undelfile() {
mv -i ~/.trash/"$@" ./ # 恢復指定文件(-i表示交互式確認)
}
cleartrash() {
read -p "確定清空回收站嗎?(y/n)" confirm
[ "$confirm" == 'y' ] || [ "$confirm" == 'Y' ] && rm -rf ~/.trash/*
}
保存后執行source ~/.bashrc
使配置生效。
定時清理.trash目錄
編寫腳本clean_trash.sh
,刪除超過30天的文件:
#!/bin/bash
find ~/.trash -type f -mtime +30 -exec rm -f {} \;
echo "回收站已清理(刪除30天前的文件)"
賦予執行權限并添加到cron:
chmod +x ~/clean_trash.sh
(crontab -l; echo "0 0 * * * ~/clean_trash.sh") | crontab - # 每天凌晨0點執行