温馨提示×

CentOS中如何回收误删除文件

小樊
44
2026-01-10 14:51:57
栏目: 智能运维

在 CentOS 系统中,如果你不小心删除了一个文件,可以尝试以下方法来恢复它:

  1. 使用 lsof 命令:

    如果文件刚刚被删除,你可以使用 lsof 命令来查找并恢复它。首先,运行以下命令以查看已打开的文件列表:

    lsof | grep '(deleted)'
    

    在输出结果中,找到你想要恢复的文件。注意文件路径和进程 ID(PID)。

    接下来,使用以下命令将文件恢复到原始位置:

    cp /proc/<PID>/fd/<FILE_DESCRIPTOR> <ORIGINAL_FILE_PATH>
    

    <PID> 替换为进程 ID,将 <FILE_DESCRIPTOR> 替换为文件描述符(例如,0、1 或 2),将 <ORIGINAL_FILE_PATH> 替换为文件的原始路径。

  2. 使用 extundelete 工具:

    如果你的 CentOS 系统使用的是 ext3 或 ext4 文件系统,可以使用 extundelete 工具来恢复已删除的文件。首先,安装 extundelete

    sudo yum install extundelete
    

    然后,使用以下命令列出可恢复的文件:

    sudo extundelete /dev/sdXY --list-deleted-files
    

    /dev/sdXY 替换为你的设备名(例如,/dev/sda1)。

    找到你想要恢复的文件后,使用以下命令将其恢复:

    sudo extundelete /dev/sdXY --restore-file <DELETED_FILE_PATH>
    

    <DELETED_FILE_PATH> 替换为已删除文件的原始路径。

请注意,文件恢复的成功率取决于许多因素,例如文件系统类型、文件删除后的时间以及磁盘上的写入操作。因此,在执行任何操作之前,请确保停止向磁盘写入新数据,以提高恢复成功的可能性。

0