温馨提示×

CentOS如何回收文件

小樊
51
2025-09-20 05:54:42
栏目: 智能运维

CentOS文件回收与恢复方法

一、主动回收文件(未彻底删除前的管理)

主动回收是指通过工具将文件移动到回收站而非直接永久删除,方便后续恢复。常见方法如下:

1. 使用trash-cli工具(推荐)

trash-cli是一个命令行工具,将文件移动到系统回收站(类似Windows回收站),支持查看、恢复和清空回收站。

  • 安装sudo yum install trash-cli
  • 删除文件到回收站trash /path/to/file(支持单个文件或目录,目录需用-r参数递归)
  • 查看回收站内容trash-list
  • 恢复文件trash-restore(交互式选择需恢复的文件)
  • 清空回收站trash-empty(可指定清空天数,如trash-empty 7清空7天前的文件)
2. 使用gvfs-trash工具(适用于GNOME环境)

gvfs-trash是基于GVFS(GNOME虚拟文件系统)的工具,依赖图形环境,但也可通过命令行使用。

  • 安装sudo yum install gvfs
  • 删除文件到回收站gvfs-trash /path/to/file
  • 清空回收站gvfs-trash-empty
  • 恢复文件gvfs-undelete(部分系统支持)
3. 自定义回收脚本(灵活控制)

若需完全自定义回收路径或规则,可手动创建回收站目录及脚本:

  • 创建回收站目录mkdir -p ~/.local/share/Trash/{files,info}
  • 编写回收脚本(命名为trash):
    #!/bin/bash
    if [ -z "$1" ]; then
      echo "Usage: trash <file|directory>"
      exit 1
    fi
    TARGET=$1
    TRASH_DIR="$HOME/.local/share/Trash/files"
    INFO_DIR="$HOME/.local/share/Trash/info"
    mv "$TARGET" "$TRASH_DIR"
    echo "[Trash Info]Path=$TARGET DeletionDate=$(date +%s)" > "$INFO_DIR/$(basename "$TARGET").trashinfo"
    
  • 赋予执行权限chmod +x trash
  • 使用脚本./trash /path/to/file
4. 图形界面回收(适用于桌面版CentOS)

若使用GNOME、KDE等桌面环境,文件管理器(如Nautilus)内置回收站功能:

  • 直接将文件拖放到桌面回收站图标,或右键选择“移动到回收站”。
  • 恢复时打开回收站,选中文件后点击“还原”即可。

二、恢复已彻底删除的文件

若文件已被rm -rf等命令彻底删除(未进入回收站),需使用数据恢复工具扫描磁盘剩余空间:

1. 使用extundelete(针对ext3/ext4文件系统)

extundelete是专门用于恢复ext文件系统删除文件的工具,需立即停止对目标分区的写入(防止新数据覆盖)。

  • 安装sudo yum install extundelete
  • 查找可恢复文件sudo extundelete /dev/sdXY --restore-all/dev/sdXY为目标分区,如/dev/sda1
  • 恢复单个文件sudo extundelete /dev/sdXY --restore-file path/to/deleted/file
  • 恢复文件保存位置:当前目录下的RECOVERED_FILES文件夹。
2. 使用TestDisk/PhotoRec(通用文件系统)

TestDisk用于恢复分区表和文件系统结构,PhotoRec用于恢复丢失的文件(支持多种文件类型)。

  • 安装sudo yum install testdisk(包含PhotoRec)
  • 运行TestDisksudo testdisk,按提示选择磁盘、分区,选择“Analyse”扫描。
  • 恢复文件:使用PhotoRec时,选择文件系统类型(如ext4),指定恢复目录即可。
3. 从备份恢复

若有定期备份(如使用rsynctar或第三方备份工具),可直接从备份介质(如外接硬盘、NAS)复制文件到原始位置,这是最可靠的恢复方式。

注意事项

  • 主动回收:优先使用trash-cligvfs-trash,避免直接rm删除重要文件。
  • 彻底恢复:文件删除后立即停止写入,否则恢复成功率极低。
  • 备份习惯:定期备份重要数据(如使用cron定时任务),是防止数据丢失的关键。

0