使用trash-cli避免误删文件--为rm增加回收站功能

┈┈【Ubuntu/CentOS管理】 专栏收录该内容
157 篇文章 5 订阅

2017-03-25 更新其他配置信息

MAKE “RM” MOVE FILES TO TRASH INSTEAD OF COMPLETELY REMOVING THEM, 译文在linux下的小工具–trash-rm

rmtrash

问题


相信有不少同学和我一样,有因习惯了rm命令,好几次一不小心冲动就删除重要文件的惨痛经历。

像这种使用 rm 命令误删除文件的情况,我们会注意,但是我们不能保证百分百的不会
出现这种情况,毕竟事情总有偶然,那么对于这种情况我们是不是就束缚无策呢,不!我们有相应的解决办法,那就是使用 trash-cli。

修改rm命令使删除文件到回收站


目标:将删除成功的文件会放入系统回收站中,位置:~/.local/share/Trash/files

目标:将删除成功的文件会放入系统回收站中
位置:回收站的位置位于~/.local/share/Trash/files
之前旧版本的回收站也可能在~/.Trash

回收站命令行工具trash-cli


主页 https://github.com/andreafrancia/trash-cli

trash-cli是一个使用 python 开发的软件包,包含trash-putrestore-trash、trash-listtrash-emptytrash-rm等命令,
我们可以通过这写命令,将文件移动到回收站,或者还原删除了的文件。
trash-put命令会把我们想要删除的文件移动到~/.local/share/Trash/files 中,
相关信息记录在~/.local/share/Trash/info中。

命令概览:

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

安装


直接使用包管理器安装


现在我们来安装 trash-cli加入我们使用 CentOS,Fedora,Ubuntu等主流操作系统,我们可以直接使用软件包管理命令安装如

安装trash-cli工具,其实就是回收站的命令行模式:

sudo apt-get install trash-cli

如果是centos系统

sudo yum install -y trash-cli

用源码安装


如果包管理器安装失败,可以使用源码的安装trash-cli
我们可以在一下地址找到
trash-cli–https://github.com/andreafrancia/trash-cli

下载源码包


我们使用 git 克隆出来,

git clone git@github.com:andreafrancia/trash-cli.git

或者直接下载压缩包

tar xf trash-cli-master.tar.gz

编译


cd trash-cli-master
sudo python setup.py build
sudo python setup.py install

rm和trash


因为和 rm命令接口是兼容的,所以,可以使用 trash-put 代替 rm,
trash-cli 在删除文件时会记录文件的原始路径、删除时间和文件权限,并且兼容GNOME和 KDE的 trash实现。同时也实现了 FreeDesktop.org Trash Specification也支持除 home文件系统意外的其他文件系统和文件分区以及移动设备分区安装完毕之后我们可以通过一些配置,给trash命令添加别名”rm”,覆盖系统rm命令

如果只是想本用户使用,就修改~/.profile或者~/.bashrc
但是如果想要全局使用,就使用/etc/profile或者/etc/bashrc中

其实由于交互式shell和非交互式shell的一些区别,命令别名最好放在bashrc类文件中

在文件中加入

alias rm="trash"

或者

alias rm=”trush-put

如果想要立即生效就source一下

一键删除回收站


其实为了安全的话,满可以在全局的profile或者bashrc中添加trash的,
我们的trash命令也是支持root的
由于Ubuntu默认没有root账户,但是可以sudo获取root权限,或者sudo su和sudo -sH切换为root

在Ubuntu中,root账户其实也是存在的,只需要使用sudo su此命令Ubuntu每次会为root生成一个动态密码我们只需要输入自己的密码,就可以切换为root,使用exit退出。

当然如果您觉得麻烦,也可以直接为Ubuntu添加root账户。

但是没有root账户,那么我们就无法通过root账户登陆图形界面,那么也就无法使用gui进入回收站删除文件,那么每次进入~/.local/share/Trash/files 就略显笨拙。
因此我们这时我们就需要一键删除回收站的命令

alias trash-rm="sudo rm -rf $HOME/.local/share/Trash/files/"

最后附上我的整个配置


#modify by gatieme at 2015-09-14 19:48 for the rm to move all files to Trash
alias rm="trash"
alias RM="trash" 
alias trash-rm="/bin/rm -rf $HOME/.local/share/Trash/files/"
alias rm-trash="/bin/rm -rf $HOME/.local/share/Trash/files/"
alias rm-trash-root="/bin/rm -rf /root/.local/share/Trash/files/"

注意
使用过程发现的一些问题

请不要使用trash删除回收站中的文件,你会发现一个奇特的现象,你删除了原文件,但是又多了一个后缀加上 _1 的新文件

如果您把alias放置在~/.bashrc中,你将无法使用sudo使用~/.bashrc的alias别名信息

如果您使用sudo trash删除的文件是放在自己的目录下的,而不是root下,但是回收站中文件的属用户和组用户都会变成root,您将只能使用root权限进行删除

  • 6
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页

打赏

CHENG Jian

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值