trash-cli是一个使用 python 开发的软件包,包含 trash-put、restore-trash、trash-list、trash-empty、trash-rm等命令,我们可以通过这写命令,将文件移动到回收站,或者还原删除了的文件。
trash-cli的项目地址:trash-cli下载地址

转载于http://www.seiang.com/?p=229

1、下载trash-cli安装包

  1. [root@VM_54_118_centos others]# git clone https://github.com/andreafrancia/trash-cli.git
  2. Cloning into 'trash-cli'...
  3. remote: Enumerating objects: 4556, done.
  4. remote: Total 4556 (delta 0), reused 0 (delta 0), pack-reused 4556
  5. Receiving objects: 100% (4556/4556), 1.17 MiB | 716.00 KiB/s, done.
  6. Resolving deltas: 100% (2791/2791), done.
  7. 进入下载目录
  8. [root@VM_54_118_centos others]# cd trash-cli/
  9. [root@VM_54_118_centos trash-cli]# ll
  10. total 112
  11. -rw-r--r-- 1 root root 251 Feb 2 17:29 bugs.txt
  12. -rw-r--r-- 1 root root 4766 Feb 2 17:29 check_release_installation.py
  13. -rw-r--r-- 1 root root 17992 Feb 2 17:29 COPYING
  14. -rw-r--r-- 1 root root 1432 Feb 2 17:29 CREDITS.txt
  15. drwxr-xr-x 3 root root 4096 Feb 2 17:29 docs
  16. -rw-r--r-- 1 root root 782 Feb 2 17:29 DONE.txt
  17. -rw-r--r-- 1 root root 3408 Feb 2 17:29 HISTORY.txt
  18. -rwxr-xr-x 1 root root 240 Feb 2 17:29 install-rpm.sh
  19. drwxr-xr-x 2 root root 4096 Feb 2 17:29 integration_tests
  20. drwxr-xr-x 3 root root 4096 Feb 2 17:29 man
  21. -rw-r--r-- 1 root root 78 Feb 2 17:29 MANIFEST.in
  22. -rw-r--r-- 1 root root 4774 Feb 2 17:29 README.rst
  23. -rw-r--r-- 1 root root 24 Feb 2 17:29 requirements-dev.txt
  24. -rwxr-xr-x 1 root root 293 Feb 2 17:29 setup.cfg
  25. -rw-r--r-- 1 root root 2423 Feb 2 17:29 setup.py
  26. drwxr-xr-x 2 root root 4096 Feb 2 17:29 tasks
  27. -rw-r--r-- 1 root root 799 Feb 2 17:29 TODO.txt
  28. drwxr-xr-x 2 root root 4096 Feb 2 17:29 trashcli
  29. -rwxr-xr-x 1 root root 127 Feb 2 17:29 trash-put
  30. -rwxr-xr-x 1 root root 126 Feb 2 17:29 trash-rm
  31. drwxr-xr-x 2 root root 4096 Feb 2 17:29 unit_tests
  32. -rw-r--r-- 1 root root 243 Feb 2 17:29 Vagrantfile

2、开始安装

  1. [root@VM_54_118_centos trash-cli]# python setup.py install
  2. .......
  3. running install_scripts
  4. copying build/scripts-2.7/trash-rm -> /usr/bin
  5. copying build/scripts-2.7/trash-list -> /usr/bin
  6. copying build/scripts-2.7/trash-put -> /usr/bin
  7. copying build/scripts-2.7/trash-empty -> /usr/bin
  8. copying build/scripts-2.7/trash -> /usr/bin
  9. copying build/scripts-2.7/trash-restore -> /usr/bin
  10. changing mode of /usr/bin/trash-rm to 755
  11. changing mode of /usr/bin/trash-list to 755
  12. changing mode of /usr/bin/trash-put to 755
  13. changing mode of /usr/bin/trash-empty to 755
  14. changing mode of /usr/bin/trash to 755
  15. changing mode of /usr/bin/trash-restore to 755
  16. running install_data
  17. copying man/man1/trash-empty.1 -> /usr/share/man/man1
  18. copying man/man1/trash-list.1 -> /usr/share/man/man1
  19. copying man/man1/trash-restore.1 -> /usr/share/man/man1
  20. copying man/man1/trash-put.1 -> /usr/share/man/man1
  21. copying man/man1/trash-rm.1 -> /usr/share/man/man1
  22. running install_egg_info
  23. Writing /usr/lib/python2.7/site-packages/trash_cli-0.17.1.14-py2.7.egg-info

3、安装成功后我们的系统就有了以下工具.

  1. [root@VM_54_118_centos ~]# ll /usr/bin/ | grep trash
  2. -rwxr-xr-x 1 root root 123 Feb 2 17:43 trash
  3. -rwxr-xr-x 1 root root 125 Feb 2 17:43 trash-empty
  4. -rwxr-xr-x 1 root root 124 Feb 2 17:43 trash-list
  5. -rwxr-xr-x 1 root root 123 Feb 2 17:43 trash-put
  6. -rwxr-xr-x 1 root root 127 Feb 2 17:43 trash-restore
  7. -rwxr-xr-x 1 root root 122 Feb 2 17:43 trash-rm

功能说明:

trash-put 将文件或目录移入回收站
trash-empty 清空回收站
trash-list 列出回收站中的文件
trash-restore还原回收站中的文件
trash-rm 删除回首站中的单个文件

4、安装完毕之后我们可以通过一些配置,用它替代 rm命令

  1. [root@VM_54_118_centos ~]# vim .bashrc
  2. # .bashrc
  3. #alias rm='rm -i'
  4. alias rm='trash-put'

5、实验测试

删除测试:

  1. [root@VM_54_118_centos ~]# rm -rf dump.rdb
  2. [root@VM_54_118_centos ~]# ll ~/.local/share/Trash/files
  3. -rw-r--r-- 1 root root 123 Jul 17 2018 dump.rdb
  4. [root@VM_54_118_centos ~]# trash-list
  5. 2019-02-02 18:02:33 /root/dump.rdb

还原删除的文件

  1. [root@VM_54_118_centos ~]# trash-restore /root/dump.rdb
  2. 0 2019-02-02 18:01:08 /root/dump.rdb.bak
  3. 1 2019-02-02 18:02:33 /root/dump.rdb
  4. What file to restore [0..1]: 1
  5. 还原成功
  6. [root@VM_54_118_centos ~]# ll /root/dump.rdb
  7. -rw-r--r-- 1 root root 123 Jul 17 2018 /root/dump.rdb

备注:

trash-put命令会把我们想要删除的文件移动到~/.local/share/Trash/files 中。
相关信息记录在~/.local/share/Trash/info中。

使用trash-cli防止rm -rf 误删除带来的灾难(“事前”非“事后”)的更多相关文章

  1. 高性能Linux服务器 第6章 ext3文件系统反删除利器ext3grep extundelete工具恢复rm -rf 误删除的文件

    高性能Linux服务器 第6章  ext3文件系统反删除利器ext3grep  extundelete工具恢复rm -rf 误删除的文件 只能用于ext3文件系统!!!!!!!高俊峰(高性能Linux ...

  2. [rm] Linux 防止"rm -rf /" 误删除

    一.缘由: 最近看到这则新闻,很是悲伤,因为我最近也在用ansible:然而这一错误源自Ansible上糟糕的代码设计,这款Linux实用工具被用于在多台不同服务器上自动执行脚本. 开发者解释到,实际 ...

  3. Linux防止“rm -rf /”误删除

    说明:不解释了,运维应该在每台服务器都去配置这个问题以减少灾难的发生 方法: 1.safe-rm safe-rm是一个开源软件用来替代不太安全的rm,可以在/etc/safe-rm.conf中配置路径 ...

  4. 使用 trash 避免 rm -rf 悲剧

    昨晚做了一个令人痛心疾首的操作,rm -rf something,把我个人电脑里的重要文件夹给删掉了,懵逼了半天才缓过来.还好是个人文件,不对公司造成影响.这件事也让我意识到 rm -rf 确实是个高 ...

  5. 用extundelete恢复rm -rf删的文件

    “慎用rm -rf命令,除非你知道此命令带来的后果.”这是一条Linux用户守则,虽然大多数用户都明白这条语句的含义,但是我觉得还需要完善一下,为这条语句加 上一个使用前提:在你确认自己拥有清醒头脑, ...

  6. 慎用rm -rf

    首先,搞个回收站在~下 .bashrc或者.bash_profile加入 mkdir -p ~/.trash alias rm=trash alias r=trash alias rl='ls ~/. ...

  7. 使用 trash-cli 逃出 rm 命令误删除重要文件的阴影

    今天是一个难忘的日子,当时本来想清除我们公司网站cms目录下面一些cdn推送网页后残留的垃圾文件,结果在执行rm -rf conten* 时打成了rm -rf conten *结果就悲剧了.cms目录 ...

  8. Linux 中如何避免 rm -rf /*

    Linux 的删除命令中 rm中没有回收站的概念,一旦文件被删除比较难还原.更可怕的是rm -rf /*,连自己都能删 这命令太危险了,弄错了就核爆了,带来的损失的巨大的.比如 Gitlab.com ...

  9. [sh]rm -rf*的防护和普通用户执行命令

    尽量用普通用户执行,因为普通用户无法删除root的文件,避免误删除 rm -rf 不可取, 尽量find+rm -rf 尽量cd && rm -rf * 加上逻辑 cd /tmp/re ...

随机推荐

  1. User Authentication with Angular and ASP.NET Core

    User authentication is a fundamental part of any meaningful application. Unfortunately, implementing ...

  2. Nginx 返回响应过滤响应内容

    陶辉94课 过滤模块 从下到上顺序 ngx_http_proxy_module 模块 Syntax: proxy_ignore_headers field ...; Default: — Contex ...

  3. js 异步代码

    这段时间一直在用node.js做毕设的后台,所以需要一些异步代码操作,主要的异步方式有:Promise.Generator 和 async / await,但下面主要讲 Promise 和 async ...

  4. ES系列十五、ES常用Java Client API

    一.简介 1.先看ES的架构图 二.ES支持的客户端连接方式 1.REST API http请求,例如,浏览器请求get方法:利用Postman等工具发起REST请求:java 发起httpClien ...

  5. PHP——base64的图片的另类上传方法

    前言 这只是个暂行的办法,回头研究好七牛云的base64上传或者vue的文件上传后还是要进行更改的 想法是这样的,既然前端只能穿base64的那就传base64的然后转为文件上传到七牛云后再删除 本地 ...

  6. P1387 最大正方形 dp

    思路:  i j的最大正方形等于min(他的斜上方的的最大正方形,他的上方有的连续1,他的左方有的连续1)+1 #include<bits/stdc++.h> using namespac ...

  7. Matplotlib学习---用matplotlib画饼图/面包圈图(pie chart, donut chart)

    我在网上随便找了一组数据,用它来学习画图.大家可以直接把下面的数据复制到excel里,然后用pandas的read_excel命令读取.或者直接在脚本里创建该数据. 饼图: ax.pie(x,labe ...

  8. 解决sublime text3 中文字符乱码

    前言 由于系统编码问题导致的中文乱码解决,linux和windows解决方式都一样. 流程 linux下两步都需要,windows下只需要第二步. 1.在package install中搜索安装:co ...

  9. Tomcat和Weblogic部署纯html文件

    1.首先纯html文件,得有一个入口 index.html 2.Tomcat是不需要指定web.xml的,因为即使你的文件里没有web.xml,也会读取conf 目录下的web.xml,在这个文件里边 ...

  10. MT【312】特征根法求数列通项

    (2016清华自招领军计划37题改编) 设数列$\{a_n\}$满足$a_1=5,a_2=13,a_{n+2}=\dfrac{a^2_{n+1}+6^n}{a_n}$则下面不正确的是(      )A ...