ubuntu下恢復被rm刪除的文件

ubuntu是文件系統,不像windows系統劃分盤符(C/D/E/etc...盤)。ubuntu對磁盤劃分分區,能夠使用extundelete恢復ext3/ext4格式的磁盤分區。html

其中,ext3/ext4是linux的正規文件系統,是一款索引式文件系統。linux

注意:一旦發生誤刪操做,應該當即中止對磁盤進行寫入操做(download or install),記錄下誤刪操做發生的時間文件路徑git

 

extundelete軟件的官網ubuntu

http://extundelete.sourceforge.net/windows

 

使用extundelete軟件撤銷rm操做的博客bash

https://my.oschina.net/fufangchun/blog/176550函數

http://www.javashuo.com/article/p-bcfauzvy-gd.htmlspa

https://blog.csdn.net/zcf1002797280/article/details/49812649#commentBox.net

 

相關命令行命令行

1. 查看本機的全部磁盤分區

sudo fdisk -l

 

2. 查看某一目錄屬於哪一個磁盤分區

% df -h [directory]
df -h /usr/lib/

 

經驗總結:

1. 作好備份。熟練使用git。

2. 重定義rm。rm是個很是危險的命令行。具體操做以下:

在 ~/.bashrc 添加以下內容,重定義 rm 指令。

mkdir -p ~/.trash
alias rm=trash
alias sudorm=sudotrash alias rl
='ls ~/.trash' alias ur=undelfile undelfile() { mv -i ~/.trash/$@ ./ } trash() { mv $@ ~/.trash/ }
sudotrash()
{
    sudo mv $@ ~/.trash/ }
cleartrash() { read -p "clear sure?[n]" confirm [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* }

這段代碼定義了三個函數 trash()、 undelfile() 和cleartrash() 。

其中,trash的做用是挪動文件到指定回收站目錄;

sudotrash的做用是使用超級權限挪動文件到指定回收站。若是運行sudo rm,此時rm是最原始的刪除功能,並不是重定義的移動功能

undelfile的做用是找回回收站中的指定文件;

cleartrash的做用是清空回收站目錄。

 

添加完畢後, source ~/.bashrc  使重定義生效。此時已經能夠找到  ~/.trash/  文件夾了。

命令行:

1. rl 查看 ~/.trash/ 文件夾中的內容;

2. rm file, rm directory 刪除文件或者文件夾;

3. sudorm file, sudorm directory 使用超級權限刪除文件或者文件夾;

4. ur file, ur directory 從 ~/.trash 中恢復文件或者文件夾到原位;

5. cleartrash 清空 ~/.trash/

 

實驗示範一下:

gordon@gordon-5577:~ $ mkdir showtime     
gordon@gordon-5577:~ $ cd showtime/
gordon@gordon-5577:~/showtime $ l
gordon@gordon-5577:~/showtime $ touch baba
gordon@gordon-5577:~/showtime $ mkdir mama
gordon@gordon-5577:~/showtime $ l                       // 建立showtime文件夾,在這裏演示
baba  mama/

gordon@gordon-5577:~/showtime $ rl                      // 此時回收站 ~/.trash/ 文件夾爲空
gordon@gordon-5577:~/showtime $ rm baba           // rm baba 文件,進入 ~/.trash/ 文件夾
gordon@gordon-5577:~/showtime $ rl
baba

gordon@gordon-5577:~/showtime $ rm -r mama
mv: invalid option -- 'r'
Try 'mv --help' for more information.
gordon@gordon-5577:~/showtime $ rm mama         // 注意,移除文件夾不須要加 -r 參數
gordon@gordon-5577:~/showtime $ rl
baba  mama

gordon@gordon-5577:~/showtime $ l                       // 查看 showtime/ 文件夾,此時爲空的 
gordon@gordon-5577:~/showtime $ ur baba           // 從 ~/.trash/ 文件夾恢復baba文件至原位
gordon@gordon-5577:~/showtime $ l
baba
gordon@gordon-5577:~/showtime $ rl
mama
gordon@gordon-5577:~/showtime $ ur mama        // 恢復 mama/ 文件夾
gordon@gordon-5577:~/showtime $ l
baba  mama/
gordon@gordon-5577:~/showtime $ rl

gordon@gordon-5577:~/showtime $ rm baba mama
gordon@gordon-5577:~/showtime $ rl
baba  mama

gordon@gordon-5577:~/showtime $ cleartrash        // 完全清空 ~/.trash/ 文件夾中的內容
clear sure?[n]y 

// 根目錄下,建立/刪除文件都須要sudo權限
gordon@gordon-5577:/usr/local $ cd showtime/
gordon@gordon-5577:/usr/local/showtime $ sudo mkdir baba mama
gordon@gordon-5577:/usr/local/showtime $ sudo touch gege didi
gordon@gordon-5577:/usr/local/showtime $ l
baba/ didi gege mama/
gordon@gordon-5577:/usr/local/showtime $ rl
gordon@gordon-5577:/usr/local/showtime $ sudorm baba/
gordon@gordon-5577:/usr/local/showtime $ sudorm gege 
gordon@gordon-5577:/usr/local/showtime $ rl
baba gege
gordon@gordon-5577:/usr/local/showtime $ l
didi mama/

gordon@gordon-5577:/usr/local/showtime $ sudo rm mama   // 在有些電腦,運行sudo rm是原始的刪除,並不是重定義的移動操做
sudo: trash: command not found
gordon@gordon-5577:/usr/local/showtime $ sudo rm -r mama
sudo: trash: command not found
gordon@gordon-5577:/usr/local/showtime $ sudo rm didi
sudo: trash: command not found
相關文章
相關標籤/搜索