红联Linux门户
Linux帮助

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

发布时间:2016-02-10 11:06:44来源:linux网站作者:漆柒

问题:

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

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


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

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


回收站命令行工具trash-cli

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

sudo apt-get install trash-cli


rm和trash

给trash命令添加别名”rm”,覆盖系统rm命令
如果只是想本用户使用,就修改~/.profile或者~/.bashrc
但是如果想要全局使用,就使用/etc/profile或者/etc/bashrc中

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

在文件中加入

alias rm="trash"

如果想要立即生效就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权限进行删除。


本文永久更新地址:http://www.linuxdiyf.com/linux/17987.html