逻辑错误还是有更好的方法?

时间:2011-04-28 01:50:17

标签: bash unix

我正试图从12小时前删除一个文件,只有12小时前的任何内容我只想追加。

find . -name "forum*.sql" -mmin +600 -mmin -780 -delete

我必须定义类似-mmax的东西吗?

1 个答案:

答案 0 :(得分:0)

很抱歉,但我发现你的描述有点难以解析。

以下代码将删除在12-13小时前完全创建/修改的文件。旧文件和较新的文件保留在原位。

原谅var名称的冗长,已经很晚了,我希望他们能让这个解决方案自我记录。

# currentTime=201104272232

TwelveHrsBefore=201104271032
ThirteenHrsBefore=2001104270932

# make some zero files with date/time range for what is to be deleted.
touch -t ${TwelveHrsBefore} upperLimit.tmpFile
touch -t ${ThirteenHrsBefore} lowerLimit.tmpFile

find . -name "forum*.sql" -newer lowerLimit.tmpFile -a ! -newer upperLimit.tmpFile
# when the above is producing the list of files you want to delete,
# append "| xargs /bin/rm -i" to the end of the find command
# to delete the files

# cleanup your tmp files   
rm lowerLimit.tmpFile upperLimit.tmpFile

-newer ... -a ! -newer ...可能会让人感到沮丧。我今天对它进行了轻微的测试,过去我曾将这种技术用于生产工作,但是我没有访问该代码来查看比这个例子更复杂的问题。

我希望这会有所帮助。