轻拔琴弦|给你一个反悔的机会
Linux 下 rm 命令是表示删除一个文件 , 而Linux是没有回收站机制 , 所以文件一旦删除的话 , 就彻底从磁盘上删除了 。 而很多人喜欢加上 -f 选项 , 是代表强制的意思 , 更暴力的是删除文件夹的时候使用 rm -rf 命令 , 这样一来 , 文件夹本身 , 以及文件夹下的子子孙孙 , 都一了百了了 。
而万一如果你执行了 rm -rf /* 命令 , 那无疑效果与下面等同:
由于没有回收站机制 , 很多人吃过这个亏 , 良许也是 , 曾经辛苦写的几个月的代码 , 一个 rm 命令全部化为乌有 , 搞得每次执行 rm 命令的时候 , 手都是颤抖的……
既然Linux没有回收站 , 那我们能否自己实现一个?答案当然是肯定的 。 下面 , 我们就自己动手做一个回收站 , 给自己一个后悔的机会 。
既然罪魁祸首是 rm 命令 , 那我们就对这个命令进行改造 。 在Linux下对命令进行重定义是使用 alias 命令 , 修改的是 .bashrc 文件 , 即:
vim ~/.bashrc
在文件尾部 , 我们添加以下几句代码:
mkdir -p ~/.trashalias rm=trashalias r=trashalias rl='ls ~/.trash/'alias ur=undelfileundelfile(){mv -i ~/.trash/$@ ./}trash(){mv -i $@ ~/.trash/}cleartrash(){read -p "clear sure?[n]" confirm[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*}
在这里 , 我们是在家目录下建立一个 .trash 的隐藏文件夹 , 作为回收站 。 然后 , 我们对 rm 命令进行重定义 。 当我们执行 rm 或者 r 的时候 , 将执行 trash 函数 。 而在 trash 函数里 , 只做一件事:
mv -i $@ ~/.trash/
就是将 rm 之后所有的文件移动到 .trash 目录下(即模拟丢进回收站) 。 -i 选项表示如果 .trash 目录有同名文件的话 , 将提示是否覆盖 。
我们将 rl 定义为 ls ~/.trash/, 也就是说 , 我们可以通过 rl 来查看 .trash 目录下的文件 , 即被「删除」的文件 。
如果要还原文件 , 可以执行 ur, 而 ur 将执行 undelfile 函数 。 在 undelfile 里 , 又将 ur 之后的文件从 .trash 目录移回到原目录 , 从而实现文件删除还原 。
当过了一段时间后 , 回收站里文件太多了 , 我们可以使用 cleartrash 命令清空回收站 。 它将执行同名函数 , 调用 /bin/rm 命令将 .trash 目录清空 。
.bashrc 文件修改完毕之后 , 我们要让它生效:
source ~/.bashrc
我们来实际体会一下:
删除文件alvin@alvin-pc:~/test$ touch file1 file2 file3alvin@alvin-pc:~/test$ lsfile1file2file3alvin@alvin-pc:~/test$ rm file1 file2 alvin@alvin-pc:~/test$ r file3
查看回收站文件alvin@alvin-pc:~/test$ rlfile1file2file3
还原被删除的文件alvin@alvin-pc:~/test$ rlfile1file2file3alvin@alvin-pc:~/test$ ur file1alvin@alvin-pc:~/test$ ur file2alvin@alvin-pc:~/test$ ur file3alvin@alvin-pc:~/test$ lsfile1file2file3alvin@alvin-pc:~/test$ rlalvin@alvin-pc:~/test$
清空回收站alvin@alvin-pc:~/test$ rm file1 file2 file3alvin@alvin-pc:~/test$ rlfile1file2file3alvin@alvin-pc:~/test$ cleartrashclear sure?[n]yalvin@alvin-pc:~/test$ rlalvin@alvin-pc:~/test$
【轻拔琴弦|给你一个反悔的机会】通过以上这些步骤 , 我们虽然可以实现一个回收站的功能 , 但实际的工作中 , 我们还是要养成定时备份的习惯 , 这样即使有误操作 , 我们也可以将损失降到最低 。
推荐阅读
- 穿搭|不经意间惊艳四座!给你加分的时尚案例,想不好看都很难
- 克里斯-保罗|再给你一次机会,你选3850万的神龟,还是3851万的保罗?
- 王者荣耀|没有明世隐的“狼狗”不能玩?正确玩法教给你一样凯瑞全场!
- 还在发愁英语单词记不住?华为MatePad 10.8携手有道名师给你支招!
- 就业|“信不信和你打两年官司,让你这点工资拿得非常艰辛”“信不信给你开罚单”,呼市一大学生试用期辞职的遭遇
- 酒意|都给你备好了!中秋无酒意不欢!中秋的酒
- 穿搭|原创 秋季咋穿更时髦?鲁豫给你做示范,条纹针织衫配阔腿裤太显气质
- 潮流尚拍精选|今日份温柔由日式休闲风给你,40+气质女人,你本来就很美
- 颠覆传统 煌球卫浴神草药沐花洒给你健康沐浴新体验
- 肯德基|美食+时尚=? KFC X KARL LAGERFELD发布会给你答案