Linux系统下设置回收站的实用方案
一 方案总览与选择
二 方案一 使用 trash-cli(推荐)
三 方案二 自定义 rm 别名与函数(轻量可控)
alias rm='trash_func'
alias rl='ls ~/.Trash'
alias ur='undelfile'
alias ct='cleartrash'
trash_func() { mv -i "$@" ~/.Trash/; }
undelfile() { mv -i ~/.Trash/"$@" ./; }
cleartrash() {
read -p "Clear trash? [y/N] " c; [[ $c =~ ^[Yy]$ ]] && /bin/rm -rf ~/.Trash/*
}
TRASH_DIR="$HOME/.Trash"
mkdir -p "$TRASH_DIR"
alias rm='trash_ts'
alias rl='ls -l "$TRASH_DIR"'
alias ur='restore_ts'
alias ct='cleartrash'
trash_ts() {
local ts=$(date +%Y%m%d%H%M%S)
for f; do
[ -e "$f" ] || continue
local base=$(basename -- "$f")
mv -i -- "$f" "$TRASH_DIR/${base}-${ts}"
done
}
restore_ts() {
local ts=$(date +%Y%m%d%H%M%S)
for f; do
local orig=${f%-${ts}}
[ -e "$TRASH_DIR/$f" ] && mv -i "$TRASH_DIR/$f" ./"$orig"
done
}
cleartrash() {
read -p "Clear trash? [y/N] " c; [[ $c =~ ^[Yy]$ ]] && /bin/rm -rf "$TRASH_DIR"/*
}
四 桌面环境回收站与清理策略
[Unit]
Description=Custom Trash Cleanup
[Service]
ExecStart=/usr/bin/trash-empty --age 7d
[Unit]
Description=Run trash-cleanup daily
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
五 注意事项与最佳实践