您的位置:首页 > 运维架构 > Linux

linux rm命令改造成回收站

2016-03-28 21:54 363 查看
在linux下删除文件用的是 rm 命令,这个命令是非常强大的,几乎可以删除linux下所有的文件。

如果你不小心敲个 # rm -rf /*   ,那就非常愉快了。我相信每个用linux的人都有过误删除文件的经历,删了怎么办。是不是瞬间就懵逼了。linux不像windows有个回收站,删除了恢复起来就很麻烦了。如果你真的误删除了不要方。第一件事该是卸载掉被删文件所在的盘,或者以只读模式挂(防止写入覆盖掉删除的文件,因为删除文件只是删掉了文件的索引)。   不过恢复文件是个麻烦事, 尤其是我这种菜鸟,简直懵逼。所以网上搜索了下,果然大神们都是有想法的, 将rm 改造成 mv 然后定时清理下就好(还可以写个计划任务,清理都不用自己动手。)所以将rm改造下是非常有用的

    正题:

首先修改bash的环境变量

# cd ~

# vim .bashrc

#alias rm='rm -i' 
//注释掉这行

然后添加如下内容

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 ..



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: