Linux 垃圾回收站机制

原文链接
Linux系统没有回收站机制,删除文件就很难找回,如果把系统的/bin/rm文件替换为自定义的脚本,则可以做到回收站的功能

1, 替换rm命令

########## 第一步: 备份系统的/bin/rm文件 ##########
[root@eadage ~]# mv /bin/rm  /bin/rm.bak



########## 第二步: 编写/bin/rm脚本 ##########
[root@eadage ~]# cat /bin/rm 
#!/bin/bash
#定义回收站路径
trashdir=/tmp/trash
[ ! -e $trashdir ] && mkdir -p $trashdir
permission=$(ls -ld $trashdir|awk '{print $1}' )
[[ $permission != "drwxrwxrwx" ]] && chmod 777 $trashdir

#1, 排除参数后,获取file/dir
#echo -f -r test/ |xargs -n 1 |grep -v '^\-'
dest_filedirs=$(echo $@ |xargs -n 1 |grep -v '\-'|xargs) 
for x in ${dest_filedirs[*]}
do
   #2, 排除/tmp/trash里面的重复目录名
   base_name=$(basename $x)
   dir_name=$(dirname $x)
   cd $dir_name && dir_name=$(pwd)
   
   #2.1, 移动原文件/目录为别的名字:防止同名文件或目录报错
   [ -e $trashdir/$base_name ] && cd $trashdir && mv $base_name $base_name.`date +%F_%T` 
   cd $dir_name && mv $base_name $trashdir
done



##########  第三步:添加脚本执行权限 ##########
[root@eadage ~]# chmod +x /bin/rm 

2, 定时清理:回收站

[root@eadage ~]# crontab -l 
#清空trash目录:每月1号
1 1 1 * * /bin/rm.bak -rf /tmp/trash/*
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值