我正在尝试找到一种方法来编写批处理脚本以删除x-xxx.jpg
在某个日期之前创建的批处理脚本。
这将如何完成?所以基本上说我有20k.jpg
并且我想在 Linux 上创建一个批处理脚本来运行,它将删除所有创建的图像,比如说在 2011 年 12 月 12 日之前。
我正在尝试找到一种方法来编写批处理脚本以删除x-xxx.jpg
在某个日期之前创建的批处理脚本。
这将如何完成?所以基本上说我有20k.jpg
并且我想在 Linux 上创建一个批处理脚本来运行,它将删除所有创建的图像,比如说在 2011 年 12 月 12 日之前。
为什么我们不能删除“N”天前的文件,而不是依赖日期?
例如,这里是用于“打印”*.jpg 文件的“查找”命令,这些文件是在 2 天之前创建的。
find /folder_path/ -iname '*.jpg' -type f -ctime +1 -print
注意:如果要删除从搜索结果返回的文件,请将“-print”选项替换为“-delete”。
这是“查找”命令的出色教程
以下脚本使用-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
find . -name "*.jpg" -mtime +1 -ok rm {} \;
要删除 20 天之前的 jpg 文件,请执行以下操作:
find . -mtime +1 -name '*.jpg'
在 centos 4.4 上,您必须使用单引号{}
,例如
# delete the "log/*.log" files that are 7 days ago.
find log/*.log -mtime +7 -exec rm '{}' \;