2009-07-30 79 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/ \;