Ubuntu 回收站重要文件的备份与防误删
一 备份思路与环境确认
二 快速备份方法
手动一次性备份到外部位置(最稳妥)
# 创建备份目录
mkdir -p /mnt/backup/trash-$(date +%F_%H-%M-%S)
# 备份回收站内容
cp -a ~/.local/share/Trash/files/. /mnt/backup/trash-$(date +%F_%H-%M-%S)/
# 如需连同元数据一起备份
cp -a ~/.local/share/Trash/info/. /mnt/backup/trash-$(date +%F_%H-%M-%S)/info/
定时自动备份(cron)
#!/usr/bin/env bash
set -e
BACKUP_ROOT="/mnt/backup/trash-backups"
TS=$(date +%F_%H-%M-%S)
DEST="$BACKUP_ROOT/trash-$TS"
mkdir -p "$DEST"
# 仅当回收站有内容时备份
if [ -d "$HOME/.local/share/Trash/files" ] && [ "$(ls -A "$HOME/.local/share/Trash/files")" ]; then
cp -a "$HOME/.local/share/Trash/files/." "$DEST/files/"
cp -a "$HOME/.local/share/Trash/info/." "$DEST/info/"
echo "Trash backed up to $DEST at $(date)" >> "$BACKUP_ROOT/backup.log"
fi
sudo chmod +x /usr/local/bin/backup-trash.sh
(crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/backup-trash.sh") | crontab -
三 防误删与更安全的删除习惯
使用 trash-cli 替代 rm(命令行“回收站”)
sudo apt update && sudo apt install -y trash-cli
trash-put file_or_dir # 删除到回收站
trash-list # 列出回收站内容
trash-restore # 交互式恢复
trash-empty # 清空回收站
echo "alias rm='trash-put'" >> ~/.bashrc
source ~/.bashrc
调整回收站保留策略(GNOME 桌面)
gsettings get org.gnome.desktop.interface trash-max-age
gsettings set org.gnome.desktop.interface trash-max-age 30
四 已清空回收站时的应急与恢复
sudo apt install -y extundelete
# 只读挂载分区后尝试恢复单个文件
sudo extundelete /dev/sdXY --restore-file /path/to/file
# 或恢复全部
sudo extundelete /dev/sdXY --restore-all
sudo apt install -y testdisk
sudo photorec