linux不删除文件:替换rm命令

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

    文章目录

    • 1, 替换rm命令
    • 2, 定时清理:回收站

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/*


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部