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

这种方发相当于直接把文件移到回收站了, 但是无法在回收站中使用恢复命令, 只能将其复制或剪切.
我比较喜欢第一种方式.

posted @ 2011-09-21 10:17  Mr.Rico  阅读(5169)  评论(0编辑  收藏  举报