温馨提示×

Ubuntu Recycle如何备份重要文件

小樊
70
2025-11-22 07:26:22
栏目: 智能运维

Ubuntu 回收站重要文件的备份与防误删

一 备份思路与环境确认

  • 图形界面回收站位置通常为:~/.local/share/Trash/,其中包含两个子目录:files(存放被删除的文件)与 info(存放元数据,如原路径、删除时间)。在进行任何清理或备份前,先确认该目录存在且可访问。为避免误删风险,建议日常删除尽量使用“移到回收站”的方式,而非直接使用 rm

二 快速备份方法

  • 手动一次性备份到外部位置(最稳妥)

    • 命令示例:
      # 创建备份目录
      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/
      
    • 说明:-a 保留权限与时间戳,适合归档备份。
  • 定时自动备份(cron)

    • 新建脚本 /usr/local/bin/backup-trash.sh
      #!/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
      
    • 赋权并加入定时任务(每天 02:00 执行):
      sudo chmod +x /usr/local/bin/backup-trash.sh
      (crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/backup-trash.sh") | crontab -
      
    • 说明:可按需调整频率与保留策略(如定期清理超过 30 天 的旧备份)。

三 防误删与更安全的删除习惯

  • 使用 trash-cli 替代 rm(命令行“回收站”)

    • 安装与常用命令:
      sudo apt update && sudo apt install -y trash-cli
      trash-put   file_or_dir    # 删除到回收站
      trash-list                 # 列出回收站内容
      trash-restore              # 交互式恢复
      trash-empty                # 清空回收站
      
    • 建议将 rm 别名化(可选,注意仅对交互式 shell 生效):
      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
      
    • 说明:适当增大保留天数,可为备份与人工恢复争取更多时间。

四 已清空回收站时的应急与恢复

  • 立即停止写入疑似受影响的分区,优先从已有备份恢复。
  • 无备份时,可尝试专业恢复工具(成功率取决于覆盖情况):
    • extundelete(适用于 ext3/ext4):
      sudo apt install -y extundelete
      # 只读挂载分区后尝试恢复单个文件
      sudo extundelete /dev/sdXY --restore-file /path/to/file
      # 或恢复全部
      sudo extundelete /dev/sdXY --restore-all
      
    • TestDisk/PhotoRec(分区与文件恢复通用):
      sudo apt install -y testdisk
      sudo photorec
      
    • 重要提示:恢复前尽量避免在该分区产生新写入,必要时将分区以只读方式挂载或使用 LiveCD/救援盘操作。

0