ceonts实现一个简单回收站
在工作中,很容易通过 rm -rf 命令把重要文件删了,所以需要设置个回收站延后删除
bash脚本
为了多个用户不影响,在~/.bashrc中新增一下内容:
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
mkdir -p ~/.trash #在home目录下创建一个.trash文件夹
timeFile=~/.trash/.timestamp
if [ ! -f $timeFile ];then
touch $timeFile
fi
# alias rm=del # 一开始使用别名del代替rm,但一些工具只识别rm命令,因此这种系统的命令都别掩盖了
del() #函数del,作用:将rm命令修改为mv命令
{
stamp=$(date "+%Y-%m-%d_%H:%M") # date以时间戳的形式赋值
stamp_key=$(date "+%s")
# 这里不能用 "~/.trash/"${stamp}"_trash",会在当前目录下新建~,被删除的文件会移动到当前目录的~目录下
# 创建子文件是方便 rm *时,方便批量恢复,同时避免同名文件覆盖
subfolder="/home/"${USER}"/.trash/"${stamp}"_trash"
mkdir -p $subfolder
mv $@ $subfolder
echo $stamp_key+"=>"$stamp >> $timeFile
}
cleardel() #函数cleardel,作用:清空回收站.trash文件夹,y或Y表示确认,n表示取消
{
read -p "clear sure[Input 'y' or 'Y' to confirm. && Input 'n' to cancel.]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}
# 不要输出内容,不然使用上传文件工具上传文件时,提示目录不存在
# echo "Welcome to zenger's world!"
crond定时任务
在docker中安装centos7,执行一下命令:
# 如果docker没有宿主机权限,直接以root权限开启crond
su root
crond
crontab -e
# 输入以下内容,每天凌晨1点执行clearday.sh脚本
0 1 * * * /home/algotran/shell/clearday.sh
然后回收逻辑在clearday.sh中实现(记得chmod +x clearday.sh)
#!/bin/bash
# 指定要删除文件的目录路径
dir_path="/home/algotran/.trash"
# 删除目录下的所有文件
rm -rf ${dir_path}/*