在Linux系统中,恢复回收文件(通常位于/tmp目录下)的方法取决于文件是如何被删除的以及是否有备份。以下是一些常见的方法:
lsof命令lsof(List Open Files)是一个强大的工具,可以列出当前系统打开的文件和使用这些文件的进程。
安装lsof(如果尚未安装):
sudo apt-get install lsof # Debian/Ubuntu
sudo yum install lsof # CentOS/RHEL
sudo dnf install lsof # Fedora
查找被删除但仍被进程使用的文件:
sudo lsof | grep deleted
这将显示所有被删除但仍被进程使用的文件。
找到对应的进程并终止它: 根据输出找到对应的进程ID(PID),然后终止该进程:
sudo kill -9 <PID>
检查文件是否恢复: 文件可能会在进程终止后重新出现在文件系统中。
extundelete或testdisk如果文件系统是ext3/ext4,可以使用extundelete工具来恢复删除的文件。
安装extundelete:
sudo apt-get install extundelete # Debian/Ubuntu
sudo yum install extundelete # CentOS/RHEL
sudo dnf install extundelete # Fedora
挂载文件系统为只读模式:
sudo mount -o remount,ro /dev/sdXn
其中/dev/sdXn是包含删除文件的文件系统分区。
使用extundelete恢复文件:
sudo extundelete /dev/sdXn --restore-file path/to/deleted/file
或者恢复整个目录:
sudo extundelete /dev/sdXn --restore-directory path/to/deleted/directory
testdisktestdisk是一个更强大的工具,可以恢复各种文件系统上的删除文件。
安装testdisk:
sudo apt-get install testdisk # Debian/Ubuntu
sudo yum install testdisk # CentOS/RHEL
sudo dnf install testdisk # Fedora
运行testdisk:
sudo testdisk
选择磁盘并进入恢复模式: 按照提示选择包含删除文件的磁盘,然后选择“Analyse”选项。
选择文件系统类型并开始恢复: 选择适当的文件系统类型,然后按照提示进行操作,直到找到并恢复删除的文件。
通过以上方法,您应该能够在Linux系统中恢复回收文件。