Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
批处理脚本在Linux上删除日期之前的文件_Linux_Batch File - Fatal编程技术网

批处理脚本在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用于正确寻址。