题目
如何让linux也像windows那样有一个回收站,避免数据的误删除,进而恢复误删数据?
参考答案:
rm是Linux下文件删除的命令,它是linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,
当你想清除当前目录下的所有文件和目录时,很简单 #rm -rf ./ 这没什么,但是,但是如果不小心打成这样 #rm -rf / 兄弟请节哀吧!
总之rm太危险了,特别是带有-rf参数时一定要慎之又慎,但老虎也有打盹的时候啊,所以为什么不给rm一剂后悔药呢!
利用windows回收站的思路,就是给rm命令创造出了一剂后悔药?
#!/bin/bashmkdir -p /.trash #创建一个目录作为回收站,这里使用的是用户家目录下的.trash目录alias rm=trash #命令别名 rm改变为trash,通过将rm命令别名值trash来实现把rm改造成删除文件至回收站alias r=trashalias rl=’ls ~/.trash’ # rl命令显示回收站中的文件alias ur=undelfile # ur命令找回回收站中的文件
undelfile(){ mv -i ~/.trash/\$@ ./}
说明:这个函数的作用是找回回收站下的文件
trash(){ mv $@ ~/.trash/ }
说明:这个函数是将指定的文件移动到指定的目录下,通过将rm命令别名值trash来实现把rm改造成删除文件至回收站
cleartrash(){ read -p “clear sure?[n]” confirm [$confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* }
说明:这个函数的作用是清空回收站目录下的所有文件
这段代码定义了三个函数trash、undelfile和cleartrash。
trash的作用是移动文件到指定的回收站目录;
undelfile的作用是找回回收站目录中的指定文件;
cleartrash的作用是清空回收站目录。
经rm命令别名为trash来实现rm命令的改造!
下面是我修改后的代码,直接在用户家目录下创建。
trash目录作为回收站,将其它代码加入用户家目录下的.bashrc文件下,这样用户每次登录这段代码就会自动生效!
登录后在bash下执行一遍下面的命令就可以把rm命令改造成删除文件到回收站了!
最终脚本
mkdir -p ~/.trashcat >> .bashrc <
备注
今天是每日一题陪伴大家的第71天,期待你的进步。
对于题目和答案的任何疑问,请在博客评论区留言。
往期题目索引