当前位置: 首页 > news >正文

给自己Linux搞个『回收站』,防止文件误删除

linux没有像windows里一样的回收站,工作时候删除文件容易不小心删错,造成麻烦的后果。所以给自己整了个回收站:

文件删除,新建~/opts/move_to_trash.sh,然后在里面新增,将${your_name}改成你的用户名。同时在~/.bashrc中alias rm命令到这个脚本,即是alias rm='sh ~/opts/move_to_trash.sh',别忘了source ~/.bashrc使其生效。 在删除的时候,会在原文件名字后面新增删除时的时间戳信息。

#!/bin/bash
PARA_CNT=$#
USER_HOME=/home/${your_name}
TRASH_DIR="${USER_HOME}/.trash"   # 指定垃圾箱目录
mkdir -p ${TRASH_DIR}
for i in $*; doif [ -f "$i" ] && [ `ls -l $i|awk '{print $5}'` -gt 1073741824 ]; thenecho "$i size is larger than 1K, can not delete it !"continuefiSTAMP=`date +%Y%m%d`      # 删除时间fileName=`basename $i`mv $i $TRASH_DIR/$fileName.$STAMP   # 删除文件命令,放到垃圾箱
done
echo "remove ${PARA_CNT} file/folder, fetch back if you need at ${TRASH_DIR}"

同时,可以考虑新增一个清除回收站的脚本,定期运行保证空间干净。由于保存了时间戳,时间超过当前7天的文件就可以删除掉了。

#!/bin/bashKEEP_DAY_DURATION=7TRASH_PATH="/data1/${your_name}/.trash"
current_date=$(date +%Y%m%d)
date_minus_10=$(date -d "$current_date -${KEEP_DAY_DURATION} days" +%Y%m%d)
ddl_timestamp=$(date -d "$date_minus_10" +%s)
echo "current date is ${current_date}, the files in trash before ${date_minus_10} will be COMPLETELY delete, are your sure?"
read -p "Do you want to continue? (y/n) " answercase ${answer} in[Yy]* )echo "deleting..."ls -l ${TRASH_PATH} | awk -F " " 'NF==9{print $NF}' > .tmpread -ra READ_LIST -d '' < .tmprm .tmpfor filename in "${READ_LIST[@]}";do filedate=`echo ${filename} | awk -F "." '{print $NF}'`filedate_stamp=`date -d "$filedate" +%s`if [ $filedate_stamp -lt $ddl_timestamp ]; thenabs_filename="${TRASH_PATH}/${filename}"/usr/bin/rm -rf ${abs_filename}echo "delete ${abs_filename}"fidone;;[Nn]* )echo "skip and exit"exit -1;;* )echo "not valid answer ${answer} and exit"exit -1;;
esac
http://www.lryc.cn/news/369454.html

相关文章:

  • Springboot接收参数的21种方式
  • 打造出色开发者体验的十大原则
  • Vue3_对接腾讯云COS_大文件分片上传和下载
  • python免杀--base64加密(GG)
  • Python版与Java版城市天气信息爬取对比分析
  • CSS真题合集(二)
  • 长期出汗困扰你?可能是肾合出了问题
  • Jmeter函数二次开发说明
  • 重新学习STM32(1)GPIO
  • React+TS前台项目实战(二)-- 路由配置 + 组件懒加载 + Error Boundary使用
  • 成为电商低价神秘顾客访问员的必备条件(深圳神秘顾客公司)
  • 现货黄金交易多少克一手?国内外情况大不同
  • LNMP与动静态网站介绍
  • 教育小程序开发:技术实现与实践案例
  • LeetCode 746.使用最小花费爬楼梯
  • 软件设计模式概述
  • 短剧片源火爆,千金难求好剧源
  • MES系统定制 | 生产调度车间排班计划/MES排程排产
  • 【Anaconda】 anaconda常用命令总结
  • VIsio Professional 绘图
  • Flutter InAppWebView Unknown feature SUPPRESS_ERROR_PAGE
  • linux系统PXE自动装机和无人值守
  • 大模型的高考数学成绩单:及格已经非常好了
  • 【漏洞复现】CraftCMS ConditionsController.php 代码执行漏洞(CVE-2023-41892)
  • 代码随想录算法训练营第三十八 |● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯
  • 如何有效处理服务器后台密码暴露
  • 使用本地大模型调用代码,根本就是一场骗局!
  • 一些简单却精妙的算法
  • git多账号使用报错:You don‘t have permissions to push to “xxx/xxxx“ onGitHub. Would
  • 中国电子学会(CEIT)2023年12月真题C语言软件编程等级考试三级(含详细解析答案)