如何查找“Jul 30 04:37”创建的东西并将它们移动到/ tmp?蹊跷:find-command:使用创建时间搜索
find . -ctime "0037043007" -exec mv {} /tmp +
如何查找“Jul 30 04:37”创建的东西并将它们移动到/ tmp?蹊跷:find-command:使用创建时间搜索
find . -ctime "0037043007" -exec mv {} /tmp +
见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是最新版本)。
for file in $(ls -lR | grep "Jul 14" | awk '{print $9}')
do
mv $file /tmp
done
请注意我的目标已更新。我知道这些文件,但我无法将它们与规范移动:创作时间。 – 2009-07-30 02:00:12
*具体创建时间,不小于或大于。 – 2009-07-30 02:00:45
我不知道为什么你使用的是 “exec {} +
” 语法...这样如何:
find . -ctime "0037043007" -exec mv \{} /tmp/ \;
我在这里打开了一个关于时间戳的新问题:http://stackoverflow.com/questions/1204669/easiest-way-to-generate-unix-timestamp。他们对我来说是新的。 – 2009-07-30 05:52:15