当前位置: 首页 > Linux

给你一个反悔的机会

时间:2023-04-06 06:46:39 Linux

Linux下的rm命令就是删除文件的意思,而Linux没有回收站机制,所以文件一旦被删除,就会从磁盘中彻底删除。而且很多人喜欢加上-f选项,也就是强制的意思。比较暴力的是在删除文件夹的时候使用rm-rf命令。这样,文件夹本身,以及文件夹下的子子孙都没有了。向上。而万一你执行rm-rf/*命令,效果无疑是一样的:因为没有回收站机制,所以很多人都深受其害,梁旭也是。写了好几个月的代码,一个rm命令全部消失了,每次执行rm命令的时候,我的手都在颤抖……既然linux没有回收站,那我们自己实现一个好吗?答案当然是肯定的。接下来,让我们自己做一个回收箱,给自己一个后悔的机会。既然罪魁祸首是rm命令,那我们就改造一下这个命令。Linux下重新定义命令就是使用alias命令修改.bashrc文件,即:vim~/.bashrc在文件末尾,我们添加如下几行代码:mkdir-p~/.trashaliasrm=trashaliasr=trashaliasrl='ls~/.trash/'aliasur=undelfileundelfile(){mv-i~/.trash/$@./}trash(){mv-i$@~/.trash/}cleartrash(){read-p"clearsure?[n]"confirm[$confirm=='y']||[$confirm=='Y']&&/bin/rm-rf~/.trash/*}这里我们是在home目录下创建一个.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$touchfile1file2file3alvin@alvin-pc:~/test$lsfile1file2file3alvin@alvin-pc:~/test$rmfile1file2alvin@alvin-pc:~/test$rfile3查看回收站文件alvin@alvin-pc:~/test$rlfile1file2file3恢复删除的文件alvin@alvin-pc:~/test$rlfile1file2file3alvin@alvin-pc:~/test$urfile1alvin@alvin-pc:~/test$urfile2alvin@alvin-pc:~/test$urfile3alvin@alvin-pc:~/test$lsfile1file2file3alvin@alvin-pc:~/test$rlalvin@alvin-pc:~/test$清空回收站alvin@alvin-pc:~/test$rmfile1file2file3alvin@alvin-pc:~/test$rlfile1file2file3alvin@alvin-pc:~/test$cleartrashclearsure?[n]yalvin@alvin-pc:~/test$rlalvin@alvin-pc:~/test$通过上面的步骤,虽然我们可以实现回收网站的功能,但是在实际工作中,我们还是要养成定期备份的习惯,这样即使出现误操作,也能将损失降到最低。最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站