批处理脚本在Linux上的日期之前删除文件

时间:2012-12-22 07:39:21

标签: linux batch-file

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

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

5 个答案:

答案 0 :(得分:4)

为什么我们不能删除那些'N'天的文件?

,而不是依赖于日期

例如,这里是'find'命令'print'* .jpg文件,它们是在2天之前创建的。

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

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

以下是“查找”命令的excellent tutorial

答案 1 :(得分: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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

要删除早于20天的jpg文件:

find . -mtime +1 -name '*.jpg'

答案 4 :(得分:0)

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

# delete the "log/*.log" files that are 7 days ago. 
find log/*.log -mtime +7 -exec rm '{}' \;