diff --git a/translated/tech/20170714 HOW TO RECOVER DELETED FILES STILL RUNNING WITH ACTIVE PROCESSES ON LINUX.md b/published/20170714 HOW TO RECOVER DELETED FILES STILL RUNNING WITH ACTIVE PROCESSES ON LINUX.md similarity index 64% rename from translated/tech/20170714 HOW TO RECOVER DELETED FILES STILL RUNNING WITH ACTIVE PROCESSES ON LINUX.md rename to published/20170714 HOW TO RECOVER DELETED FILES STILL RUNNING WITH ACTIVE PROCESSES ON LINUX.md index 4dd1c34fab..255704f0f7 100644 --- a/translated/tech/20170714 HOW TO RECOVER DELETED FILES STILL RUNNING WITH ACTIVE PROCESSES ON LINUX.md +++ b/published/20170714 HOW TO RECOVER DELETED FILES STILL RUNNING WITH ACTIVE PROCESSES ON LINUX.md @@ -1,11 +1,11 @@ 如何在 Linux 中恢复仍在活动进程中的已删除文件 ============================================================ -使用终端恢复你 Linux 系统上仍在运行进程的已删除文件的快速指南。 +> 使用终端恢复你 Linux 系统上仍在运行进程的已删除文件的快速指南。 -许多情况下,删除的文件都可以恢复,即使该文件具有活动进程,并且目前被单个或多个用户使用。在 Linux 系统中,每个当前正在运行的进程都会获得 ID,并将其显示为进程标识符 “PID”,并将它们存放在 /proc 目录中。这正是我们需要恢复仍在运行的已删除的文件,并且它具有PID。所以,这就是我们如何做到这一点的。 +许多情况下,删除的文件都可以恢复,比如在该文件有活动的进程在操作它,并且目前被单个或多个用户使用时。在 Linux 系统中,每个当前正在运行的进程都会获得 ID,其被称之为进程标识符 “PID”,并将它们存放在 `/proc` 目录中。这正是我们恢复仍在运行的进程中(具有PID)已删除的文件所需要的东西。这里就是介绍我们如何做到这一点的。 -假设你打开了一个压缩文件,之后你已经删除了这个文件。为了演示目的,压缩文件称为 “opengapps.zip”,这将是之后我们将打开和删除的文件。 +假设你打开了一个压缩文件,之后你删除了这个文件。为了演示目的,压缩文件称为 “opengapps.zip”,这将是之后我们将打开和删除的文件。 ### 计算原始文件的 MD5 哈希 @@ -19,14 +19,11 @@ md5sum opengapps.zip >> md5-opengapps.txt ``` cat md5-opengapps.txt -``` -``` -终端输出 86489b68b40d144f0e00a0ea8407f7c0 opengapps.zip ``` -检查压缩文件的 MD5 哈希值之后。我们将保持打开的压缩文件,并将其删除。之后,我们将从文件的恢复过程开始,步骤如下: +检查压缩文件的 MD5 哈希值之后。我们将压缩文件保持打开(LCTT 译注:此处是使用 file-roller 这个图形界面的解压程序保持对该压缩文件的打开,其内置在 GNOME 环境中;在桌面环境中,使用桌面工具打开一个压缩包也能起到同样的作用。又及,本文举例不是很恰当,如果是删除了某个服务进程的已经打开的配置文件,那么这种恢复就很有意义),并将其删除。之后,我们将从文件的恢复过程开始,步骤如下: ``` rm opengapps.zip @@ -34,34 +31,28 @@ rm opengapps.zip ### 删除文件的恢复过程 -正如我们前面提到的,运行的进程在 /proc 目录中。我们可以使用以下命令搜索该目录中需要的进程: +正如我们前面提到的,运行的进程在 `/proc` 目录中。我们可以使用以下命令搜索该目录中需要的进程: 由于我们已经知道文件名包括 .zip 扩展名,因此我们可以使用 .zip 扩展名进行搜索。它将限制输出结果并显示所需的进程。 ``` ps -axu | grep .zip -``` -``` -终端输出 m 13119 0.8 1.0 121788 30788 ? Sl 06:17 0:00 file-roller /home/m/Downloads/Compressed/opengapps.zip m 13164 0.0 0.0 5108 832 pts/20 S+ 06:18 0:00 grep --color=auto .zip ``` -然后我们将进入到包含 PID **13119** 的目录并打开 /fd 目录。 +然后我们将进入到包含 PID `13119` 的目录并打开 `fd` 子目录。 ``` cd /proc/13119/fd ``` -/fd (文件描述符)目录包含多个文件,包括我们需要恢复的文件。该文件链接到我们在后台运行的原始硬链接。 /fd 目录中的所有文件都带有作为“文件名”的数字。因此,要确定这些文件中的哪一个链接到原始文件,我们将用详细列表选项列出 /fd 目录。 +`fd` (文件描述符)目录包含多个文件,包括我们需要恢复的文件。该文件以硬链接的方式链接到原始文件。 `fd` 目录中的所有文件都以数字链接到“文件名”。因此,要确定这些文件中的哪一个链接到该原始文件,我们将用详细列表选项列出 /fd 目录。 ``` ls -l -``` -``` -终端输出 total 0 lr-x------ 1 m m 64 Jul 14 06:17 0 -> /dev/null lrwx------ 1 m m 64 Jul 14 06:17 1 -> socket:[26161] @@ -79,7 +70,7 @@ lrwx------ 1 m m 64 Jul 14 06:17 8 -> socket:[5751363] lrwx------ 1 m m 64 Jul 14 06:17 9 -> socket:[5751365] ``` -正如你在终端输出中看到的,原始文件 “opengapps.zip” 已被删除,但它仍然链接到一个文件名 **13**,并具有进程 PID **13119**。但是,我们仍然可以通过将链接文件复制到安全的地方来恢复。 +正如你在终端输出中看到的,原始文件 “opengapps.zip” 已被删除,但它仍然链接到一个文件名 `13`,其进程 PID `13119`。但是,我们仍然可以通过将链接的文件复制到安全的地方来恢复它。 ``` cp 13 /home/m/Downloads/Compressed @@ -105,10 +96,7 @@ md5sum opengapps-recovered.zip >> md5-opengapps.txt ``` cat md5-opengapps.txt -``` -``` -终端输出 86489b68b40d144f0e00a0ea8407f7c0 opengapps.zip 86489b68b40d144f0e00a0ea8407f7c0 opengapps-recovered.zip ``` @@ -117,24 +105,25 @@ cat md5-opengapps.txt [![](http://www.linuxnov.com/wp-content/uploads/2017/07/Recovering-a-deleted-file-using-terminal-LinuxNov.png)][5] -**注意:** 在某些情况下,某些文件无法通过 **ps -axu** 命令看到。 所以,尝试检查运行的程序,并从中恢复文件。 +**注意:** 在某些情况下,某些文件无法通过 `ps -axu` 命令看到。 所以,尝试检查运行的程序,并从中恢复文件。 假设我们有一个使用 Totem 媒体播放器播放中的以 .avi 为扩展名的视频。你需要做的就是检查 Totem 的 PID,并按照本示例中提到的相同说明进行操作。 要查找正在运行的程序的 PID,请使用以下命令,后面跟程序的名称。 ``` -pidof application name +pidof 程序名 ``` -通过分享支持我们 + +通过分享支持我们。 -------------------------------------------------------------------------------- via: http://www.linuxnov.com/recover-deleted-files-still-running-active-processes-linux/ -作者:[mhnassif ][a] +作者:[mhnassif][a] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出