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. 我对领域驱动设计(DDD)的学习成果

    领域驱动设计之领域模型 2004年Eric Evans发表Domain-Driven Design – Tackling Complexity in the Heart of Software (领域 ...

  2. 学习 Spring (五) Aware 接口

    Spring入门篇 学习笔记 Spring 中提供了一些以 Aware 结尾的接口,实现了 Aware 接口的 bean 在被初始化之后可以获取相应资源 通过 Aware 接口,可以对 Spring ...

  3. 【python练习题】程序12

    #题目:判断101-200之间有多少个素数,并输出所有素数. #判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数. from math import ...

  4. c++ string去除首尾 空格、\n、\r、\t

    string s = " test "; size_t n = s.find_last_not_of(" \r\n\t"); if (n != string:: ...

  5. 两种从spring容器获取bean方式

  6. Linux下的好用的编辑软件Remarkable

    Linux下的好用的编辑软件Remarkable最近着手开始学习Linux,就想着找一款好用的编辑器作笔记,在网上爬了些贴选择了Remarkable.官网崩了,有没有梯子,废了好大力气才装好.于是把资 ...

  7. winserver 2008 R2服务器安装IIS

    winserver 2008 R2 IIS7 安装IIS 打开服务器管理器 选择“角色”,右击添加角色 点击“下一步” 勾选”Web服务器(IIS)“,点击”下一步“ 勾选”常见Http功能.应用程序 ...

  8. 基于jQuery-ui实现多滑块slider

    效果图: 代码: <!doctype html> <html lang="en"> <head> <meta charset=" ...

  9. Elasticsearch 删除数据

    删除数据分为两种:一种是删除索引(数据和表结构同时删除,作用同SQLSERVER 中 DROP TABLE "表格名" ),另一种是删除数据(不删除表结构,作用同SQLSERVER ...

  10. 非阻赛IO模型

    实例一: 只能在waitdata 阶段找到IO的解决方案 from concurrent.futures import ThreadPoolExecutor import socket server ...