linux下修改rm命令防止误删除

时间:2023-07-30 21:23:25

前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾。那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用。

第一步:

先在home目录下创建一个叫username名字的目录(当然名字可以自定义),具体命令为:sudo mkdir username(自定义的名字)

这时候记得要用命令:sudo chmod 777 username(自定义的名字)来改变一下你的目录权限,因为在home目录下刚创建的目录是没有执行权限的。

第二步:

进到username目录下,命令为:cd username ,接着在username 目录下创建两个目录分别为trash和tools这两个名字都可以自定义的,当然也要改一下权限,方法和上面的一样。

第三步:

进到tools目录下,方法在第二步已经讲过了,在里面创建一个shell文件叫remove.sh(名字也可自定义,但是后缀必须是.sh),具体命令为:touch remove.sh,这时shell文件一般都是有执行权了的,没有的话再用命令:sudo chmod 777 remove.sh改一下权限。

第四步:

接着在刚才创建好的shell文件remove.sh中写上代码:

PARA_CNT=$#
TRASH_DIR="/home/username/trash" //如果你是自定义目录名的话,这里一定要改成你自定义的目录名
for i in $*; do
STAMP=$i
mv $i $TRASH_DIR/.$STRMP
done

第五步:

接着用命令:vi ~/.bashrc打开~/.bashrc文件到最后加上这句代码:alias rm="/home/username/tools/remove.sh",如果你的目录名字是自定义的话这里一定要改成你自己的名字,接着保存退出。

第六步:

用命令:source ~/.bashrc重启一下就好了。

这时候就把rm命令改成了mv一样的作用,你在使用rm命令的时候就会把你删除的文件移动到trash目录下了,如果你不小心把文件误删了就可以到trash目录下找回来了。

当然如果你要彻底删除这些文件的话可以直接用命令:sudo  rm [文件名/目录名],这样这些文件就不会被移动到trash目录下了。

如果你想清理trash目录下的文件很简单,进到trash目录后,直接执行命令:sudo rm *,这样就可以清空trash目录下所有的文件了。

如果你实在是很懒的话,那还是让它自动定时清空trash目录中的东西吧,具体操作如下:

先用命令:cd /etc/ 进到etc目录下,你会看到里面有个叫crontab的文件,先用命令:sudo chmod 777  crontab 改一下crontab文件的权限先,不然等下修改不了里面的代码。接着打开crontab文件,命令为:vi crontab 直接在最后面加上这句代码:

    * * *       rm -rf/home/username/trash/*   //如果你的名字跟我的不一样,那就改成你自己的

这句话的意思是每天的0时0分清空trash目录。

接着重复一下第六步就大功告成了。这时候就会每天帮你自动清空trash目录了,当然你也可以手动清空,上面已经讲过了。