linux删除某个目录不是今天的所有文件

环境:linux

问题:某个目录下有很多文件,今天的文件很少,需要删除不是今天的文件

1、查找今天修改过的文件

cd /data                                  #进入到需要删除的目录
find . -ctime -1|awk -F / '{print $2}'    #找到今天修改过的文件

2、将今天的文件排除的拼接

for i in  `find . -ctime -1|awk -F / '{print $2}'`;do echo -n " --ignore=\"$i\" ";done   # echo -n 将所有的输出在一行展示

3、将结果用ls 和删除命令拼接出来(上面是解析,可以直接执行下面命令生成脚本)

echo -n "ls" && for i in  `find . -ctime -1|awk -F / '{print $2}'`;do echo -n " --ignore=\"$i\" ";done && echo -n "|xargs rm -rvf"    #结果如下
ls --ignore="today.txt" |xargs rm -rvf

4、在文件目录执行生成的命令即可删除不是今天的文件

5、简单方法-直接删除一天前的文件

1
2
3
4
5
6
7
8
9
10
11
1.当前时间24小时—当前时间(昨天-今天)
#find . -mtime 0
2.当前时间48小时前–当前时间24小时前(前天-昨天)
#find . -mtime 1
3.当前时间48小时前(2天前)
#find . -mtime +1
4.当前时间24小时–当前时间(昨天-今天)
#find . -mtime -1
 
find . -mtime 1|xargs rm -rvf
find . -mtime 1 -exec rm {} \;

  

  

 

posted @   苍茫宇宙  阅读(734)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示