在linux下删除文件用的是 rm 命令,这个命令是非常强大的,几乎可以删除linux下所有的文件。
如果你不小心敲个 # rm -rf /* ,那就非常愉快了。我相信每个用linux的人都有过误删除文件的经历,删了怎么办。是不是瞬间就懵逼了。linux不像windows有个回收站,删除了恢复起来就很麻烦了。如果你真的误删除了不要方。第一件事该是卸载掉被删文件所在的盘,或者以只读模式挂(防止写入覆盖掉删除的文件,因为删除文件只是删掉了文件的索引)。 不过恢复文件是个麻烦事, 尤其是我这种菜鸟,简直懵逼。所以网上搜索了下,果然大神们都是有想法的, 将rm 改造成 mv 然后定时清理下就好(还可以写个计划任务,清理都不用自己动手。)所以将rm改造下是非常有用的
正题:
首先修改bash的环境变量
# cd ~
# vim .bashrc
mkdir -p ~/.trash
alias rm=trash
alias rl='ll -a ~/.trash'
alias ur=undelfile
undelfile()
{
mv -i ~/.trash/$@ ./
}
trash()
{
mv $@ ~/.trash/
}
cleartrash()
{
read -p "clear sure?[y/n]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* ~/.trash/.* 2>>/dev/null
source ~/.bashrc
这样只有当前用户会生效,为了让所有的用户生效,可以将上面的内容写到
/etc/bashrc
重新加载环境变量,或者重新打开终端就可以所有的用户都有效的
演示效果如下:
[llin@localhost ~]$ mkdir rm_test
[llin@localhost ~]$ touch rm_test/test.txt
[llin@localhost ~]$ ls rm_test/test.txt
rm_test/test.txt
[llin@localhost ~]$ rm rm_test/
[llin@localhost ~]$ rl
总用量 4
drwxrwxr-x. 3 llin llin 20 Mar 28 21:49 .
drwx------. 26 llin llin 4096 Mar 28 21:49 ..
drwxrwxr-x. 2 llin llin 21 Mar 28 21:49 rm_test
[llin@localhost ~]$ ls rm_test
ls: 无法访问rm_test: 没有那个文件或目录
[llin@localhost ~]$ ur rm_test
[llin@localhost ~]$ ls rm_test
test.txt
[llin@localhost ~]$ rm rm_test/
[llin@localhost ~]$ rl
总用量 4
drwxrwxr-x. 3 llin llin 20 Mar 28 21:49 .
drwx------. 26 llin llin 4096 Mar 28 21:49 ..
drwxrwxr-x. 2 llin llin 21 Mar 28 21:49 rm_test
[llin@localhost ~]$ cleartrash
clear sure?[y/n]y
[llin@localhost ~]$ rl
总用量 4
drwxrwxr-x. 2 llin llin 6 Mar 28 21:50 .
drwx------. 26 llin llin 4096 Mar 28 21:49 ..