zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    Ubuntu上安装Redis
    Unity Shader中将指定颜色过滤成透明
    用Python发送邮件
    Flask搭建简单的服务器
    SQLServer 中All、Any和Some用法与区别
    Linux探秘之用户态与内核态
    MTDDL 美团点评分布式数据访问层中间件
    基础数据结构 例:栈、队列、链表、数据、字典、树、等
    二叉树、红黑树、B&B+树数据结构
    CPU,GPU,高速缓存cache,内存RAM,虚拟内存VM,磁盘ROM,磁盘缓存之间的关系
  • 原文地址:https://www.cnblogs.com/xkfz007/p/2183136.html
Copyright © 2011-2022 走看看