批处理脚本在Linux上删除日期之前的文件
我正在试图找到一种方法来编写一个批处理脚本,以删除在某个日期之前创建的批处理脚本在Linux上删除日期之前的文件,linux,batch-file,Linux,Batch File,我正在试图找到一种方法来编写一个批处理脚本,以删除在某个日期之前创建的x-xxx.jpg 如何做到这一点? 因此,基本上说我有20k.jpg,我想在Linux上创建一个批处理脚本来运行,该脚本将删除2011年12月12日之前创建的所有图像。以下脚本使用-ot测试(“旧到”): #/bin/bash 触摸屏-d“$1”/tmp/d 转移 对于“$@”中的文件;做 [$file-ot/tmp/D]&&rm“$file” 完成 rm/tmp/D 将其另存为delete older.sh,使其可执行c
x-xxx.jpg
如何做到这一点?
因此,基本上说我有
20k.jpg
,我想在Linux上创建一个批处理脚本来运行,该脚本将删除2011年12月12日之前创建的所有图像。以下脚本使用-ot
测试(“旧到”):
#/bin/bash
触摸屏-d“$1”/tmp/d
转移
对于“$@”中的文件;做
[$file-ot/tmp/D]&&rm“$file”
完成
rm/tmp/D
将其另存为delete older.sh
,使其可执行chmod u+x delete older.sh
,作为
path/to/script/delete-older.sh 2011/12/12 *.jpg
要删除早于(例如)20天的jpg文件,请执行以下操作:
find . -mtime +1 -name '*.jpg'
与其依赖日期,为什么我们不能删除那些“N”天的文件 例如,这里是“find”命令,用于“print”*.jpg文件,这些文件是在2天前创建的
find /folder_path/ -iname '*.jpg' -type f -ctime +1 -print
注意:如果要删除从搜索结果返回的文件,请将“-print”选项替换为“-delete”
这是一个用于“查找”命令的命令-名称“*.jpg”-mtime+1-ok rm{}\代码>在centos 4.4上,您必须对
{}
使用单引号,例如
# delete the "log/*.log" files that are 7 days ago.
find log/*.log -mtime +7 -exec rm '{}' \;
在某个日期之前创建的文件?或者在某个日期之前修改?因为与Windows不同,Linux文件系统通常不存储文件的创建日期。嗯,
ext4
确实存储了创建日期IIRC,但是用户空间没有标准化的时间戳访问权限……这太棒了。比直接用油灰锉要好,谢谢+1用于正确寻址。