2009-07-30 72 views

回答

4

见GNU find手册(和time input formats信息太)。

特别是,-newerct '30-Jul-2009 04:37'选项似乎做你想要的大部分。

唯一的障碍是,手册页暗示它对于文件严格比给定时间更新。这表明,你需要使用的绝对时间:

1248957000 = 2009-07-30 05:30:00 (TZ = US/Pacific = UTC-07:00) 

-newerct @1248957000 

这仍然留下的如何应对比语义严格更大的问题。

-newerct @1248956999 -a ! -newerct @1248957001 

这工作,但毫无疑问是杂乱(和假设你有工具,以获得从一个日期/时间值的Unix时间戳)。

您需要一个足够新的版本find才能正常工作(GNU findutils 4.4.2是最新版本)。

+0

我在这里打开了一个关于时间戳的新问题:http://stackoverflow.com/questions/1204669/easiest-way-to-generate-unix-timestamp。他们对我来说是新的。 – 2009-07-30 05:52:15

2
for file in $(ls -lR | grep "Jul 14" | awk '{print $9}') 
do 
mv $file /tmp 
done 
+0

请注意我的目标已更新。我知道这些文件,但我无法将它们与规范移动:创作时间。 – 2009-07-30 02:00:12

+0

*具体创建时间,不小于或大于。 – 2009-07-30 02:00:45

0

我不知道为什么你使用的是 “exec {} +” 语法...这样如何:

find . -ctime "0037043007" -exec mv \{} /tmp/ \;