linux避免误删除
实现文件垃圾箱
[root@centos7:~]#
vim trash.sh
#!/bin/bash
#****************************************************
#Date: 2022-09-07
#Author: wwzroom
#FileName: trash.sh
#Description: The test script
#QQ: 896517050
#****************************************************
DIR=`mktemp -d /tmp/trash-$(date +%F_%H-%M-%S)XXXXXX`
mv $* $DIR
echo $* is move to $DIR
#定义DIR变量,新建临时文件夹,在tem下生成年月日时分秒的文件,移动($*所有位置参数,这里就是执行过程中输入的位置参数,即要删除的文件名字)所有数据到此目录,并屏幕显示所有的数据移动到此目录下。
2.加上执行权限:chmod +x trash.sh
[root@centos7:~]#
chmod +x trash.sh
3.临时定义别名:alias rm=/root/trash.sh
[root@centos7:~]#
alias rm=/root/trash.sh
4.此时删除文件是的时候,就是执行的此脚本,不会直接删除
[root@centos7:~]#
rm a.sh
a.sh is move to /tmp/trash-2022-09-07_02-32-356KAgBi
[root@centos7:~]#
ll /tmp/trash-2022-09-07_02-32-356KAgBi
总用量 4
-rw-r--r-- 1 root root 281 9月 6 23:00 a.sh
5.永久有效,需要在~.bashrc文件内容修改rm 的别名。
[root@centos7:~]#
vim .bashrc
...
alias rm=/root/trash.sh #修改此项
...
6.需要永久删除的话要使用转义才行
[root@centos7:~]#
\rm -rf /tmp/trash-2022-09-07_02-32-356KAgBi
总结:1.利用别名的逻辑让rm变为我们想要具有的功能。
2.利用mktemp命令创建随机的文件夹,确保每个文件都放在不同的目录。