shell习题-自定义rm
需求:
linux系统的rm命令太危险,一不小心就会删除掉系统文件。 写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时,都要做一个备份,然后再删除.
简单处理:
删除文件或目录之前,先在一个目录(/data)下做备份,备份成隐藏文件,命名为日期加时间(.201803161056)。把删除文件同步到该目录下,可以使用rsync -R 把文件路径一同同步。
vim newrm.sh
#!/bin/bash
#运行脚本时,传进来的参数(你想要删除的文件)
filename=$1
#得到一个时间搓,并赋值给变量d
d=`date +%Y%m%d%H%M`
#用户输入
read -p “Are U sure delete the file or directory $1? y|n: ” c
if [ $c == “y” ] || [ $c == “Y” ]
#用户输入y,要删除
then
#创建目录
mkdir /data/.$d
#rsync同步删除的文件或目录
rsync -a $1/ /data/.$d/$1/
#删除文件
/bin/rm -rf $1
elif [ $c == “n” ] || [ $c == “N” ]
#用户输入n,不删除就退出脚本
then
exit 0
else
#用户输入的不是y 或 n ,给出的提示交互
echo “Please input ‘y’ or ‘n’.”
fi