1,安装。

1,安装方法一

安装非常简单,使用两条命令搞定。

yum install -y python-setuptools.noarch
easy_install trash-cli

一般情况下,没啥问题就安装成功了。

2,安装方法二

如果主机内核还是 2.6 的 CentOS6,那么可以通过如下方式安装,这种安装方式,适用于 CentOS6 以及 CentOS7

wget https://github.com/andreafrancia/trash-cli/archive/master.zipunzip master.zipcd trash-cli-masterpython setup.py install

如果最后一步安装不报错,那就成功了。

有时候这种方式安装完成之后,可能无法在系统层面适用对应的命令,可以加入如下一条命令:

ln -s /usr/local/python/bin* /usr/bin/

2,了解功能

安装之后,系统会新增几个工具:

[root@docker ~]$ls /usr/bin/ |grep trash
trash
trash-empty
trash-list
trash-put
trash-restore
trash-rm

说明:

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

3,添加 rm 别名

直接在系统当中添加如下命令:

[root@docker ~]$echo "alias rm='trash-put'" >> /etc/bashrc[root@docker ~]$source /etc/bashrc

虽然在 Github 中作者并不建议这么做,而是建议当使用 rm 的时候输出一段提示,作者原话说:

Can I alias rm to trash-put?
You can but you shouldn't. In the early days I thought it was good idea do that but now I changed my mind.
The interface of trash-put seems to be compatible with rm it has a different semantic that will cause you problems. For example, while rm requires -R for deleting directories trash-put does not.
But sometimes I forgot to use trash-put, really can't I?
You may alias rm to something that will remind you to not use it:
alias rm='echo "This is not the command you are looking for."; false'
If you really want use rm simply prepend a slash:
\rm file-without-hope
Note that Bash aliases are used only in interactive shells, so using this alias should not interfere with scripts that expects to use rm.

但是我觉得这样也是可以的,配置方便,已用。

4,使用示例

配置完成之后,我们可以正常的使用 rm 命令。

1,创建示例文件

[root@docker opt]$touch a b c
[root@docker opt]$mkdir 1 2 3
[root@docker opt]$ls
1  2  3  a  b  c

2,将其一并删除

[root@docker opt]$rm -rf ./*
[root@docker opt]$ls

3,使用命令查看

[root@docker opt]$trash-list
2018-10-30 16:21:00 /opt/1
2018-10-30 16:21:00 /opt/2
2018-10-30 16:21:00 /opt/3
2018-10-30 16:21:00 /opt/a
2018-10-30 16:21:00 /opt/b
2018-10-30 16:21:00 /opt/c

这个时候,文件其实保存在$USER/.local/share/Trash/files下,可以用命令查看一下。

[root@docker opt]$ls /$USER/.local/share/Trash/files
1  2  3  a  b  c

4,恢复文件

[root@docker opt]$trash-restore0 2018-10-30 16:21:00 /opt/11 2018-10-30 16:21:00 /opt/22 2018-10-30 16:21:00 /opt/33 2018-10-30 16:21:00 /opt/a4 2018-10-30 16:21:00 /opt/b5 2018-10-30 16:21:00 /opt/c
What file to restore [0..5]: 0
[root@docker opt]$ls
1

通过每个文件前边的数字选择,从而判断恢复哪个文件,目前貌似没发现批量恢复的办法,当然你可以直接去目录下进行恢复。

5,删除回收站的单个文件

[root@docker opt]$trash-rm 2
[root@docker opt]$trash-list
2018-10-30 16:21:00 /opt/3
2018-10-30 16:21:00 /opt/a
2018-10-30 16:21:00 /opt/b
2018-10-30 16:21:00 /opt/c

6,清空回收站

[root@docker opt]$trash-empty
[root@docker opt]$trash-list
[root@docker opt]$

基本上用法就是这些用法,如果是普通用户,那么道理是一样的,这里的道理一样指的是普通用户使用此命令之后,也会在其家目录下生成一个回收站。

通常在配置了回收站机制之后,都要顺手将自动清空回收站的机制加上的,不然会导致一些文件没被及时清除,从而让系统磁盘压力过大。

前几天在服务器增加了回收站功能,所以磁盘空间可能会受到影响,因此就再做一个策略就是自动清理回收站几天前的东西。

现有一个工具是 autotrash。

autotrash

自动清理工具

5,安装

可以直接从 github 下载:

$ wget https://github.com/bneijt/autotrash/archive/v0.2.1.zip
$ unzip v0.2.1.zip
$ cd autotrash-0.2.1
$ python setup.py install$ whereis autotrashautotrash: /usr/bin/autotrash

执行安装完成之后,对应的可执行文件就已经自动放入了/usr/bin下了。

6,用法

$ autotrash -d 30   #删除回收站中超过 30 天的文件
$ autotrash -td 30  #删除所有用户的回收站文件,上边的命令只删除当前用户对应的回收站文件
$ autotrash --max-free 1024 -d 30  #如果回收站的剩余的空间少于 1GB,那么 autotrash 将从回收站中清除超过 30 天的已删除文件

7,配置

现实中我们将之写入到定时任务,从而让清理工作自动执行。

echo "#add clean tool" >> /var/spool/cron/root
echo "@daily /usr/bin/autotrash -d 7" >> /var/spool/cron/root
echo "#add clean tool" >> /var/spool/cron/test
echo "@daily /usr/bin/autotrash -d 7" >> /var/spool/cron/test

这样就实现了每天清理回收站 7 天前的文件了。

使用trash-cli给Linux服务器加一个回收站的功能相关推荐

  1. linux服务器上的回收站,为linux系统实现回收站

    在linux系统中,经常采用"rm *"或"rm -r *"操作删除一下文件,但是有时某些文件并不是我们想要删除的,但是已经被删除.很多时候都是悲剧的,数据是难 ...

  2. 通用权限管理系统组件 给信息管理系统加一个初始化的功能,调用存储过程

    系统初始化的运行效果如下: 参数表是为了防止反复被初始化的,防止关键数据丢失. 其实很多人都提过希望有系统初始化的功能,最近稍微空一些,就给系统增加了一个初始化的功能,给大家参考一下. 首先写了一个存 ...

  3. 通用权限管理系统组件 (GPM - General Permissions Manager) 给信息管理系统加一个初始化的功能,调用存储过程...

    系统初始化的运行效果如下: 参数表是为了防止反复被初始化的,防止关键数据丢失. 其实很多人都提过希望有系统初始化的功能,最近稍微空一些,就给系统增加了一个初始化的功能,给大家参考一下. 首先写了一个存 ...

  4. linux 服务器加装硬盘流程及sda sdb加载顺序

    使用中服务器容量不够了,于是准备加装硬盘,步骤如下 环境:  Linux ubuntu 4.11.0-15-generic 以下是步骤: 1.安装硬盘到服务器中 2.查看硬盘情况 可以看到 sdb 是 ...

  5. linux——服务器与客户端实现聊天功能

    先联想一下聊天的场景,假设甲和乙在聊天,他们每个人都能够发送给对方一句话甚至多句话,也能接收到对方发来的一句或多句话,也就是说,甲在发送一句话给乙的时候,同时也能接收到乙发来的信息,而且甲还能连续发多 ...

  6. linux做域服务器,域主机搭建,windows,linux的加域

    一.搭建域主机的好处: 1,简化管理工作. 2,单个帐户登陆后,可以访问域中所有有权访问的资源. 3,具有强大的查询功能. 二.域主机的构建:(windows2012 r2) https://jing ...

  7. Linux服务器版本鼠标,安装GPM给Linux虚拟控制台提供配置鼠标支持

    给你的 Linux 系统安装 GPM,这样我们就可以在虚拟控制台中配置鼠标,比如进行复制与粘贴操作.GPM 是一个守护程序,是通用鼠标的首字母的缩写,它可以帮助你配置 Linux 虚拟控制台的鼠标支持 ...

  8. Linux学习总结(51)——25个Linux服务器安全小贴士

    前言 大家都认为 Linux 默认是安全的,我大体是认可的 (这是个有争议的话题).Linux默认确实有内置的安全模型.你需要打开它并且对其进行定制,这样才能得到更安全的系统.Linux更难管理,不过 ...

  9. linux服务器的完整部署内容详细

    之前总玩v8虚拟机,最近看到腾讯云学生套餐很实惠就租了个linux服务器搭一个项目,做下这个项目部署全记录,即为了方便以后查看,同时也分享下自己的经验,不足之处还请多多指教,废话不多说,直接开始!!! ...

最新文章

  1. iis cgi 无法使用_ASP.NET Core前后端分离项目使用gitlabci持续集成到IIS
  2. 如何修改物料主数据的利润中心
  3. amd and nvidia gop_抱紧台积电的大腿就是好,AMD不仅CPU领先,显卡也逆袭有望
  4. 【Android】启动过程:Bootloader-System/Recovery
  5. 跟我一起学.NetCore之WebApi接口裸奔有风险(Jwt)
  6. Spring的核心模块解析
  7. 部分Caffe 报错解决方案
  8. MFC小笔记:简单画图
  9. 基 于 svm 的 图 像 分 类_CeO2和MgO助烧剂对矾土基莫来石合成料烧结的影响
  10. 在ASP.NET中使用AJAX的简单方法 转载
  11. python笔试题(一)
  12. 送给女朋友的情人节礼物---超贴心小程序
  13. SOA 普元EOS 工作流开发
  14. SpringBoot java串口操作(rxtx)
  15. HBase:HBase的rowKey设计技巧
  16. 微信支付之商户号以及appid以及密钥
  17. 【学习笔记】seckill-秒杀项目--(1)搭建项目
  18. windows系统ftp服务器,Windows下使用的FTP服务器软件
  19. 鲁棒局部均值分解 (RLMD)附Matlab代码
  20. Blender SMPL-X 插件安装

热门文章

  1. 【SpringBoot】SpringBoot @ConfigurationProperties 注解 用法与加载static静态属性
  2. 跨越逐梦路上的荆棘(程序猿生存指南)
  3. 快手极速版最大化提现
  4. vulnhub Hacker Fest 2019 记录
  5. 计算机终端网络准入管理规定,网络准入与终端安全.doc
  6. C# EF 拼接OR
  7. linux 下shell中if的“-e,-d,-f”是什么意思
  8. java通讯录课程设计_java课程设计_通讯录_通讯簿.doc
  9. SPARQL查询语言概念及语法
  10. 东北林业大学OJ题目3