Linux系统下如何按创建时间筛选指定日期的Zip文件?
在Linux中按创建时间筛选指定日期的Zip文件
方法一:使用find直接筛选(推荐,支持birth time的文件系统)
如果你的文件系统(如ext4)支持文件创建时间(birth time),可以用find命令直接按日期范围过滤:
find /目标文件夹路径 -type f -name "*.zip" -newerBt "2023-02-02" ! -newerBt "2023-02-03"
参数说明:
-type f:仅查找普通文件-name "*.zip":匹配所有后缀为zip的文件-newerBt "2023-02-02":筛选创建时间晚于2023年2月2日0点的文件! -newerBt "2023-02-03":排除创建时间晚于2023年2月3日0点的文件
两者结合就能精准定位2023年2月2日当天创建的Zip文件。
方法二:结合stat与循环遍历(兼容所有系统)
如果系统不支持find的-newerBt参数,可通过遍历文件+stat检查时间的方式实现:
for file in /目标文件夹路径/*.zip; do # 提取文件创建日期(stat %z输出的是带时区的完整时间,截取日期部分) create_date=$(stat -c %z "$file" | cut -d' ' -f1) # 对比日期,匹配则输出文件名 if [ "$create_date" = "2023-02-02" ]; then echo "$file" fi done
如果你的stat输出日期格式不是YYYY-MM-DD,可调整cut的分隔符或参数适配格式。
内容的提问来源于stack exchange,提问作者user21133836
相关产品推荐
相关产品推荐

