修改root用户的环境变量
vi ~/.bashrc
注释第5行的别名
#alias rm='rm -i'
最后一行添加如下内容
mkdir -p ~/.trash #创立一个目录作为回收站,这里运用的是用户家目录下的.trash目录
alias rm=trash #命令别名 rm改动为trash,经过将rm命令别名值trash来完成把rm改形成删除文件至回收站
alias r=trash
alias rl='ls ~/.trash' # rl 命令显现回收站中的文件
alias ur=undelfile # ur命令找回回收站中的文件
undelfile() #这个函数的作用是找回回收站下的文件
{
mv -i ~/.trash/$@ ./
}
trash() #这个函数是将指定的文件挪动到指定的目录下,经过将rm命令别名值trash来完成把rm改形成删除文件至回收站
{
mv $@ ~/.trash/
}
cleartrash() #这个函数的作用是清空回收站目录下的一切文件
{
read -p "clear sure?[n]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}
重新加载环境变量
source ~/.bashrc
这段代码定义了三个函数trash
、undelfile
和cleartrash
。
trash
的作用是挪动文件到指定的回收站目录;
undelfile
的作用是找回回收站目录中的指定文件;
cleartrash
的作用是清空回收站目录。
经rm
命令别名为trash
来完成rm
命令的改造!
trash
目录作为回收站,将其它代码参加用户家目录下的.bashrc
文件下,这样用户每次登录这段代码就会自动生效!登录后在bash
下执行一遍下面的命令就能够把rm
命令改形成删除文件到回收站了!
使用命令ll -a查看目录,发现多了目录.trash,这个目录是用来存在删除的文件
drwxr-xr-x. 2 root root 4096 Jun 4 11:31 .trash
删除一个文件
[root@localhost ~]# rm percona-xtrabackup_2.2.3.orig.tar.gz
查看目录,发现删除的文件在回收站目录
[root@localhost ~]# ll .trash/
total 33780
-rw-r–r–. 1 root root 34584359 Jun 2 09:39 percona-xtrabackup_2.2.3.orig.tar.gz
如果需要清空回收站文件使用以下命令
[root@localhost ~]# cleartrash
clear sure?[n]y
再次查看,发现空了。
[root@localhost ~]# ll .trash/
total 0
虽然rm用别名定义了,但是可以是用绝对路径删除文件 比如/bin/rm 1.txt
它是不会保存到.trash目录的。
如果需要定义自动清理7天删除的文件
可以写一个脚本
#!/bin/bash
find /root/.trash/ -ctime 7 -type file -name "*" -exec /bin/rm {} \;
如果Linux除了root用户,还有其他用户需要登陆服务器,也想他们使用回收站机制
可以修改系统环境变量
vi /etc/profile
最后一行添加
mkdir -p ~/.trash
alias rm=trash
alias r=trash
alias rl='ls ~/.trash'
alias ur=undelfile
undelfile()
{
mv -i ~/.trash/$@ ./
}
trash()
{
mv $@ ~/.trash/
}
cleartrash()
{
read -p "clear sure?[n]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}
重新加载环境变量
source /etc/profile
如果对.trash目录位置觉得不爽,可以修改环境变量,改成其他位置,注意保证目录可写。
mkdir /tmp/trash_tmp 建立一个回收站目录
vi /bin/trash 编辑一个文件
mv $@ /tmp/trash_tmp
:wq保存退出
alias rm=/bin/trash #添加别名
vi /etc/bashrc #在最后一行添加
alias rm=/bin/trash
chmod 755 /bin/trash
chmod 777 /tmp/trash_tmp
source /etc/bashrc #启用环境变量
如果要真的删除某个文件的时候用 /bin/rm -i file_name
这样一来一个回收站就建立了,以后你用rm的时候会自动的将file_name 移动到/tmp/trash_tmp/目录下