11-自建回收站
原创大约 3 分钟
脚本
#!/bin/bash
if [[ $# -eq 0 ]];then
echo "Usage: bash $0 files or dirs"
exit 1
fi
function Help(){
echo "Do you want to continue, input enter to next."
read -p "" a
}
main(){
mytemp=$1
D=/temp/$(date +%Y%m%d%H%M%S_hsz)
[ ! -d $D ] && mkdir -p $D
if echo $1 | grep , &>/dev/null;then
mytemp="`echo $mytemp | tr ',' '\n'`"
fi
for i in $mytemp
do
if ! ls -l $i &>/dev/null;then
continue
fi
if ls -l $i | grep -Ew 'etc|usr|bin' &>/dev/null;then
echo "you do not delete [ $i ]"
continue
fi
echo "now you want to delete >>> $i <<<" && ls -lh $i
Help
/bin/mv "$i" "$D"
echo "`date +%F-%T` --- "$i" Moved to $D" >> ./mv_data.log
done
if [[ `ls -l $D | wc -l` -eq 0 ]];then
rm -r $D
fi
}
main $1#!/bin/bash
# $#表示传递给脚本的参数个数,-eq是比较判断是否相等
if [[ $# -eq 0 ]];then
echo "Usage: bash $0 files or dirs"
exit 1
fi
# 方法
function Help(){
echo "Do you want to continue, input enter to next."
read -p "" aaaaaaaaaaa
# -p选项用于在读取输入之前输出提示符。由于提示符是空字符串"",所以不会显示任何额外的文字,只是等待输入。一旦输入了内容并按下Enter键,输入的值就会赋给变量aaaaaaaaaaa
}
# 方法
main(){
mytemp=$1
D=/temp/$(date +%Y%m%d%H%M%S_hsz)
# !取反 -d判断存不存在 D是变量
# 如果目录不存在则创建
[ ! -d $D ] && mkdir -p $D
#传入参数是多个文件用[,]分隔
if echo $1|grep , &>/dev/null;then
# 逗号换成换行符
mytemp="`echo $mytemp|tr ',' '\n'`"
fi
# 迭代,一行行来(do开始done结尾)
for i in $mytemp
do
# 正确错误都定向到一个空黑洞,不输出
if ! ls -l $i &>/dev/null;then
# 不存在文件,则中断这轮循环
continue
fi
# 匹配etc|usr|bin这些关键目录,禁止删除,(安全删除,避免误操作)
if ls -l $i|grep -Ew 'etc|usr|bin' &>/dev/null;then
echo "you do not delete [ $i ]"
# 匹配到关键目录,则中断这轮循环
continue
fi
# 提示确认删除文件并输出文件信息
echo "now you want to delete >>> $i <<<" && ls -lh $i
# 引用函数
Help
# 移动文件到临时目录
/bin/mv "$i" $D
# 输出日志追加到文件
# ``里面是要执行的命令
echo "`date +%F-%T` --- "$i" Moved to $D" >> /root/mv_data.log
done
# 检查一遍创建的临时目录是否有文件(真的删除成功)
if [[ `ls -1 $D|wc -l` -eq 0 ]];then
# 没有文件(空目录)则删除
rm -r $D
fi
}
# 引用main函数
main $1执行
# bash hsz.sh 1.log
now you want to delete >>> 1.log <<<
-rw-r--r-- 1 root root 4 May 13 00:20 1.log
Do you want to continue, input enter to next.
# ll /temp/20240513002110_hsz/
total 12
drwxr-xr-x 2 root root 4096 May 13 00:21 ./
drwxr-xr-x 3 root root 4096 May 13 00:21 ../
-rw-r--r-- 1 root root 4 May 13 00:20 1.log定义别名
加执行权限