昨天比較犯2, 在指令下使用rm指令時,以為已經進入到要删除檔案的所在的目錄了,然後使用了rm -v *指令, 然後終端上就顯示删除的資料,突然停住了, 要确認是否删除一個隻讀檔案,我想阿, 我那個目錄下應該不會有隻讀的檔案吧?再仔細一看,壞啦,提示是否删除Downloads目錄下的一些檔案(Downloads是~/下的目錄), 我再一看阿,上面删除的是Documents目錄中的檔案,我的所有的學習工作的文檔都在這個目錄下阿, 完了完了,我當時太大意了,沒有仔細檢視是否cd進入到要删除檔案所在的目錄. 現在可如何是好?
然後我就上網查了查是否有可以進行回複的工具, 網上說的最多的就是使用debugfs工具.
我後我就按網上說的, 先退出目前使用者,然後是ctrl+alt+F2進入終端, 登入root使用者.
使用df -h指令檢視我删除檔案所在是分區是在/dev/sda9上,然後将此分區umount掉
然後利用debugfs指令:debugfs /dev/sda9 --restore-all
但是還是沒有完全恢複,隻是恢複了幾個無關緊要的檔案吧.可能是我在删除後進行過寫操作的原因吧(我删除後立即建立了Documents目錄)
算了, 不恢複了, 還好實驗室電腦上有一些備份, 雖然不是很全, 也隻能這樣了.
然後我重新登入我的賬戶,發現我的Desktop目錄也沒有了,看來剛才是先删除的Desktop目錄, 導緻現在使用者檔案夾下的很多檔案都在桌面上顯示出來了, 這樣看着太别扭了,該怎麼辦呢?
我上網查了查,發現可以這樣做:
在~目錄下的.config目錄下有一個user-dirs.dirs檔案,進入之後就知道怎麼修改了
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"
在其中添上Desktop目錄然後登出使用者再登入就可以了
為了防止以後再次出現這種誤删的情況,我得想個辦法把檔案都一律删除到資源回收筒, 這樣就可以做到萬無一失了.
然後我就到網上查找方法, 共有三種方法
(1)使用trash-cli:
這個軟體是在指令行下操作資源回收筒(其目錄是~/.local/share/Trash/files).
安裝(fedora14中):yum -y install trash-cli
使用方法:(http://code.google.com/p/trash-cli/)
To remove move foo in the trash can, use
$ trash-put foo
To list all the contents of the trashcan
$ trash-list
2007-08-30 12:36:00 /home/andrea/foo
2007-08-30 12:39:41 /home/andrea/bar
2007-08-30 12:39:41 /home/andrea/bar2
2007-08-30 12:39:41 /home/andrea/foo
Search for a specific file in the trashcan
$ trash-list | grep foo
2007-08-30 12:36:00 /home/andrea/foo
2007-08-30 12:39:41 /home/andrea/foo
To restore a trashed file
$ trash-restore
0 2007-08-30 12:36:00 /home/andrea/foo
1 2007-08-30 12:39:41 /home/andrea/bar
2 2007-08-30 12:39:41 /home/andrea/bar2
3 2007-08-30 12:39:41 /home/andrea/foo2
4 2007-08-30 12:39:41 /home/andrea/foo
What file to restore [0..4]: 4
$ ls foo
foo
To remove all trashed files
$ trash-empty
To remove files that have been in the trash more than a given number of days
$ trash-empty <days>
For example
$ date
Tue Feb 19 20:26:52 CET 2008
$ trash-list
2008-02-19 20:11:34 /home/einar/today
2008-02-18 20:11:34 /home/einar/yesterday
2008-02-10 20:11:34 /home/einar/last_week
$ trash-empty 7
$ trash-list
2008-02-19 20:11:34 /home/einar/today
2008-02-18 20:11:34 /home/einar/yesterday
$ trash-empty 1
$ trash-list
2008-02-19 20:11:34 /home/einar/today
注意:如果要恢複一個檔案, 必須到當時删除的目錄中去使用trash-restore指令
(2)使用gvfs-trash指令
http://www.unix.com/man-page/OpenSolaris/1/gvfs-trash/
gvfs-trash指令卻可以将檔案送到資源回收筒。
可以使用"gvfs-trash 檔案路徑"将檔案删除
用alias del=gvfs-trash 可以建立别名.
(3)使用mv指令
alias del='mv -t ~/.local/share/Trash/files --backup=t'
删除成功的檔案會放入系統資源回收筒中,位置:~/.local/share/Trash/files
這種方發相當于直接把檔案移到資源回收筒了, 但是無法在資源回收筒中使用恢複指令, 隻能将其複制或剪切.
我比較喜歡第一種方式.
轉載于:https://www.cnblogs.com/xkfz007/archive/2011/09/21/2183136.html