3

我正在尝试找到一种方法来编写批处理脚本以删除x-xxx.jpg在某个日期之前创建的批处理脚本。

这将如何完成?所以基本上说我有20k.jpg并且我想在 Linux 上创建一个批处理脚本来运行,它将删除所有创建的图像,比如说在 2011 年 12 月 12 日之前。

4

5 回答 5

4

为什么我们不能删除“N”天前的文件,而不是依赖日期?

例如,这里是用于“打印”*.jpg 文件的“查找”命令,这些文件是在 2 天之前创建的。

find /folder_path/ -iname '*.jpg' -type f -ctime  +1 -print 

注意:如果要删除从搜索结果返回的文件,请将“-print”选项替换为“-delete”。

这是“查找”命令的出色教程

于 2012-12-22T09:29:18.127 回答
1

以下脚本使用-ot测试(“旧于”):

#/bin/bash
touch -d "$1" /tmp/D
shift
for file in "$@" ; do
    [[ $file -ot /tmp/D ]] && rm "$file"
done
rm /tmp/D

将其另存为delete-older.sh,使其可执行chmod u+x delete-older.sh,运行为

path/to/script/delete-older.sh 2011/12/12 *.jpg
于 2012-12-22T07:54:19.983 回答
1

find . -name "*.jpg" -mtime +1 -ok rm {} \;

于 2012-12-22T17:13:29.530 回答
0

要删除 20 天之前的 jpg 文件,请执行以下操作:

find . -mtime +1 -name '*.jpg'
于 2012-12-22T08:17:10.020 回答
0

在 centos 4.4 上,您必须使用单引号{},例如

# delete the "log/*.log" files that are 7 days ago. 
find log/*.log -mtime +7 -exec rm '{}' \; 
于 2013-02-07T03:31:19.157 回答