在 Linux 中如何恢復已刪除的文件

目錄
  • 一、概述
  • 二、過程
    • 1、 為“rm -i”創建別名
    • 2、 恢復工具 – Foremost
      • 2.1 安裝軟件包
      • 2.2 示例展示
  • 三、小結

    一、概述

    這曾經發生在你身上嗎?你意識到你錯誤地刪除瞭一個文件—要麼通過Del鍵,要麼在命令行中使用rm。

    在第一種情況下,您可以使用回站站(GNOME界面),然後將其恢復到原始位置。但是第二種情況呢?我相信你可能知道,Linux 命令行不會將刪除的文件發送到任何地方,而是直接刪除它們。

    二、過程

    1、 為“rm -i”創建別名

    該-i選項與rm一起使用時在刪除文件之前會出現提示。此提示讓您有第二次機會考慮是否真的要刪除文件 ,但此提示不會保護您免受自己的粗心大意刪除文件,它隻是給你提供瞭二次確認的機會。

    要將rm替換為別名’rm -i’,請執行以下操作:

    alias rm='rm -i'
    
    

    alias命令將確認rm現在是別名:

     

    但是,這隻會在當前 shell 中的當前用戶會話期間持續。要使更改永久生效,您必須將其保存到~/.bashrc(某些發行版可能會使用~/.profile),

    如下所示:

    為瞭使~/.bashrc(or ~/.profile) 中的更改立即生效,請從當前 shell 獲取文件:

     

    2、 恢復工具 – Foremost

    在日常的系統操作,請小心的你文件,但是,如果您意識到您不小心刪除瞭系統中的文件並且驚慌失措,別擔心,此工具會輕松幫你找回誤刪除的文件! 

    2.1 安裝軟件包

    CentOS/RHEL 7,是目前在生產環境見到的使用最廣泛的版本,下面展示在CentOS/RHEL 7中的安裝過程。

    #rpm -Uvh https://rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/foremost-1.5.7-1.el7.rf.x86_64.rpm
    
    

    命令展示:

    [root@192_168_209_128 images]# foremost  -h
    
    foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick Mikus.
    
    $ foremost [-v|-V|-h|-T|-Q|-q|-a|-w-d] [-t <type>] [-s <blocks>] [-k <size>] 
    
            [-b <size>] [-c <file>] [-o <dir>] [-i <file] 
    
    -V  - display copyright information and exit
    
    -t  - specify file type.  (-t jpeg,pdf ...) 
    
    -d  - turn on indirect block detection (for UNIX file-systems) 
    
    -i  - specify input file (default is stdin) 
    
    -a  - Write all headers, perform no error detection (corrupted files) 
    
    -w  - Only write the audit file, do not write any detected files to the disk 
    
    -o  - set output directory (defaults to output)
    
    -c  - set configuration file to use (defaults to foremost.conf)
    
    -q  - enables quick mode. Search are performed on 512 byte boundaries.
    
    -Q  - enables quiet mode. Suppress output messages. 
    
    -v  - verbose mode. Logs all messages to screen

    選項釋義:

    • -t:指定要恢復的文件類型如jpeg,pdf,exe,doc等,如果要恢復所有文件類似,指定參數值為"all"即可。
    • -d:打開間接塊檢測(對於 UNIX 文件系統)。
    • -i:指定輸入文件(默認為標準輸入)。
    • -a:不執行錯誤檢測(損壞的文件)。
    • -w:隻輸出審計文件,不輸出被刪除的文件至磁盤上。
    • -o:設置輸出目錄(默認為輸出)。

    2.2 示例展示

    (1) 安裝完成後,讓我們進行一個簡單的測試。

    首先我們將xihu.jpg從/boot/images目錄中刪除:

    [root@192_168_209_128 images]# cd image
    
    [root@192_168_209_128 images]# pwd
    
    /boot/images
    
    [root@192_168_209_128 images]# ls
    
    xihu.jpg
    
    [root@192_168_209_128 images]# rm xihu.jpg

    (2) 執行恢復。

    要恢復它,首先按如下方式使用(您需要首先識別底層分區 -在這種情況下/dev/sda1就是/boot所在的分區):

    remost -t jpg -i /dev/sda1 -o /home/rescure/
    
    

    (3) 查看恢復情況

    查看一下審計文件。

     

    從輸出內容來看,文件被成功恢復。

    註意事項:

    • 其中/home/rescue是單獨磁盤上的目錄 – 請記住,在已刪除文件所在的同一驅動器上恢復文件不是明智之舉。
    • 如果在恢復過程中,您占用已刪除文件所在的相同磁盤扇區,則可能無法恢復任何內容。此外,必須在執行恢復之前停止所有活動。
    • 在 foremost 完成執行後,恢復的文件(如果可以恢復)將在/home/rescue/jpg目錄中找到。

    三、小結

    在本文中,我們解釋瞭如何避免意外刪除文件以及在發生此類意外事件時如何嘗試恢復文件。但是請註意,根據分區的大小,最終可能需要運行很長時間。

    到此這篇關於在 Linux 中如何恢復已刪除的文件的文章就介紹到這瞭,更多相關 Linux 恢復已刪除文件內容請搜索GuideAH以前的文章或繼續瀏覽下面的相關文章,希望大傢以後多多支持GuideAH!

    閱讀更多: