CentOS系统的回收站通常位于用户主目录下的隐藏文件夹中,路径为:
~/.local/share/Trash/(包含files子目录用于存放删除的文件,info子目录用于存储文件元信息)。
若未找到,可通过ls -a ~命令查看是否存在.local/share/Trash目录。
trash-cli工具(推荐)trash-cli是专门用于管理回收站的命令行工具,支持定时清空、设置保留时间等功能。
trash-cli:sudo yum install trash-cli命令安装(需联网)。crontab -e),添加以下内容:# 每天凌晨0点清空回收站(保留30天内的文件)
0 0 * * * /usr/bin/trash-empty 30
其中,trash-empty 30表示删除30天前的回收站文件,可根据需求调整天数(如7表示保留7天)。若未使用trash-cli,可通过自定义脚本实现回收站及定时清理。
mkdir -p ~/.local/share/Trash/files创建回收站文件目录(可选:mkdir -p ~/.local/share/Trash/info创建元信息目录)。rm命令(可选):rm命令重定向到回收站,避免直接删除文件。创建/bin/rm脚本(需root权限):#!/bin/bash
RECYCLE_BIN="$HOME/.local/share/Trash/files"
for item in "$@"; do
mv "$item" "$RECYCLE_BIN/$(date +%s)_$(basename "$item")"
done
赋予执行权限:chmod +x /bin/rm,并修改~/.bashrc添加alias rm='/bin/rm'使更改生效(source ~/.bashrc)。crontab -e),添加以下内容(以每天凌晨0点清空为例):# 方法1:直接删除回收站文件(简单粗暴)
0 0 * * * rm -rf ~/.local/share/Trash/files/*
# 方法2:按访问时间删除(更灵活,如删除1天未访问的文件)
0 0 * * * find ~/.local/share/Trash/files -type f -atime +1 -delete
0 0 * * * find ~/.local/share/Trash/info -type f -atime +1 -delete
其中,-atime +1表示删除1天前访问过的文件,可根据需求调整时间(如+7表示7天)。若回收站占用空间过大,可设置脚本按大小清理(如超过10GB时清空)。
/usr/local/bin/clean_recycle_bin.sh,内容如下:#!/bin/bash
RECYCLE_BIN="$HOME/.local/share/Trash/files"
MAX_SIZE=$((10 * 1024 * 1024)) # 10GB(单位:KB)
CURRENT_SIZE=$(du -sk "$RECYCLE_BIN" | awk '{print $1}')
if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]; then
rm -rf "$RECYCLE_BIN"/*
echo "$(date): 回收站大小超过${MAX_SIZE/1024}GB,已清空。" >> /var/log/recycle_clean.log
fi
赋予执行权限:chmod +x /usr/local/bin/clean_recycle_bin.sh。crontab -e),添加以下内容(如每天凌晨2点执行):0 2 * * * /usr/local/bin/clean_recycle_bin.sh
/usr/local/bin/clean_recycle_bin.sh)确认功能正常,避免误删。/var/log/recycle_clean.log),便于排查问题。