天天看點

fedora:在指令行下删除檔案到資源回收筒

昨天比較犯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