linuxrm删除文件之后,恢复就比较麻烦了,即使恢复了,文件名格式都变成一串数字了。
修改root用户的环境变量
vi~/.bashrc
注释第5行的别名
#aliasrm='rm-i'
最后一行添加如下内容
mkdir-p~/.trash
aliasrm=trash
aliasr=trash
aliasrl='ls~/.trash'
aliasur=undelfile
undelfile()
{
mv-i~/.trash/$@./
}
trash()
{
mv$@~/.trash/
}
cleartrash()
{
read-p"clearsure?[n]"confirm
[$confirm=='y']||[$confirm=='Y']&&/bin/rm-rf~/.trash/*
}
重新加载环境变量
source~/.bashrc
使用命令ll-a查看目录,发现多了目录.trash,这个目录是用来存在删除的文件
drwxr-xr-x.2rootroot4096Jun411:31.trash
删除一个文件
[root@localhost~]#rmpercona-xtrabackup_2.2.3.orig.tar.gz
查看目录,发现删除的文件在回收站目录
[root@localhost~]#ll.trash/
total33780
-rw-r--r--.1rootroot34584359Jun209:39percona-xtrabackup_2.2.3.orig.tar.gz
如果需要清空回收站文件
使用以下命令
[root@localhost~]#cleartrash
clearsure?[n]y
再次查看,发现空了。
[root@localhost~]#ll.trash/
total0
虽然rm用别名定义了,但是可以是用绝对路径删除文件
比如/bin/rm1.txt
它是不会保存到.trash目录的。
如果需要定义自动清理7天删除的文件
可以写一个脚本
#!/bin/bash
find/root/.trash-ctime7-typef-name"*"-exec/bin/rm{}\;
然后在任务计划里面调用一下就可以了。
如果Linux除了root用户,还有其他用户需要登陆服务器,也想他们使用回收站机制
可以修改系统环境变量
vi/etc/profile
最后一行添加
mkdir-p~/.trash
aliasrm=trash
aliasr=trash
aliasrl='ls~/.trash'
aliasur=undelfile
undelfile()
{
mv-i~/.trash/$@./
}
trash()
{
mv$@~/.trash/
}
cleartrash()
{
read-p"clearsure?[n]"confirm
[$confirm=='y']||[$confirm=='Y']&&/bin/rm-rf~/.trash/*
}
重新加载环境变量
source/etc/profile
创建普通用户测试
useradda
设置密码
passwda
登陆Linux
查看目录,发现会创建.trash目录
[a@localhost~]$ll-a
total24
drwx------.3aa4096Jun411:45.
drwxr-xr-x.5rootroot4096Jun411:44..
-rw-r--r--.1aa18Oct162014.bash_logout
-rw-r--r--.1aa176Oct162014.bash_profile
-rw-r--r--.1aa124Oct162014.bashrc
drwxrwxr-x.2aa4096Jun411:45.trash
创建一个空文件
[a@localhost~]$touch1.txt
删除文件
[a@localhost~]$rm1.txt
查看回收站目录,发现多了一个文件
[a@localhost~]$ll.trash/
total0
-rw-rw-r--.1aa0Jun411:451.txt
如果对.trash目录位置觉得不爽,可以修改环境变量,改成其他位置,注意保证目录可写。