如何在 Linux 中恢復已刪除的檔案

有這種情況發生過嗎?您意識到您錯誤刪除了一個文件 – 通過Del鍵,或在命令行中使用rm

在第一種情況下,您總是可以進入垃圾桶搜索文件,並將其恢復到原始位置。但第二種情況呢?正如您可能知道的那樣,Linux命令行不會將刪除的文件發送到任何地方 – 它們被刪除了。糟糕。它們消失了。

建議閱讀:如何使用Scalpel工具恢復已刪除的文件/目錄

在本文中,我們將分享一個提示,可以幫助您防止這種情況發生在您身上,以及您可能考慮在任何時間點上使用的工具,如果您不小心做到了。

創建一個對‘rm -i’的別名

使用-i開關,當與rm(以及其他文件操作工具如cp或mv)一起使用時,會在刪除文件之前出現提示。

同樣適用於在已存在同名文件的位置複製、移動或重新命名文件

此提示讓您再次考慮是否真的要刪除該文件 – 如果確認提示,該文件將被刪除。在這種情況下,很抱歉,但此提示將無法保護您免受自己的粗心。

要將rm替換為'rm -i'的別名,請執行:

alias rm='rm -i'

alias命令將確認rm現在已被設置別名:

Add Alias rm Command

但這將僅在當前用戶會話和當前shell中保持。要使更改永久生效,您需要將其保存到~/.bashrc(一些發行版可能使用~/.profile)如下所示:

Add Alias Permanently in Linux

為了讓~/.bashrc(或~/.profile)中的更改立即生效,從當前shell中導入文件:

. ~/.bashrc
Active Alias in Linux

取證工具 – Foremost

希望您在管理文件時小心,並且只需要在從外部磁盤或USB驅動器中恢復丟失的文件時使用此工具。

但是,如果您意識到自己意外刪除了系統中的文件並且即將陷入恐慌 – 不要。讓我們來看看foremost,這是一款專為這種情況設計的取證工具。

要在CentOS/RHEL 7中安裝foremost,您需要先啟用Repoforge

# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# yum install foremost

而在Debian及其衍生版本中,只需執行

# aptitude install foremost

安裝完成後,讓我們進行一個簡單的測試。我們將首先從 /boot/images 目錄中刪除一個名為 nosdos.jpg 的圖片文件:

# cd images
# rm nosdos.jpg

要恢復它,請使用 foremost 如下(您需要首先識別底層分區 – 在這種情況下 /dev/sda1/boot 所在的位置):

# foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued

其中 /home/gacanepa/rescued 是位於另一個磁盤上的目錄 – 請記住,在與已刪除文件所在相同的驅動器上恢復文件並不明智。

如果在恢復期間佔用了與已刪除文件所在位置相同的磁盤扇區,可能無法恢復任何內容。此外,在進行恢復之前停止所有活動至關重要。

當 foremost 完成執行後,如果恢復成功,則恢復的文件將位於 /home/gacanepa/rescued/jpg 目錄中。

摘要

在本文中,我們解釋了如何避免意外刪除文件以及如何嘗試恢復它,如果發生這種不希望的事件。但請注意,根據分區的大小,foremost 可能需要運行相當長的時間。

如有任何問題或意見,請隨時告訴我們。請隨時使用下面的表格給我們留言。

Source:
https://www.tecmint.com/recover-deleted-file-in-linux/