在 CentOS 系统中,如果你不小心删除了一个文件,可以尝试以下方法来恢复它:
使用 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> 替换为文件的原始路径。
使用 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> 替换为已删除文件的原始路径。
请注意,文件恢复的成功率取决于许多因素,例如文件系统类型、文件删除后的时间以及磁盘上的写入操作。因此,在执行任何操作之前,请确保停止向磁盘写入新数据,以提高恢复成功的可能性。