2009-07-30 5 views

ответ

4

Смотрите ГНУ 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 is current).

+0

Я открыл новый вопрос о временных отметках здесь: http://stackoverflow.com/questions/1204669/easiest-way-to-generate-unix-timestamp. Они новы для меня. –

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

Пожалуйста, обратите внимание, что моя цель обновлена. Я знаю файлы, но я не могу переместить их с критерием: время создания. –

+0

* определенное время создания, не меньшее или большее. –

0

Я не уверен, почему вы используете "exec {} +" синтаксис ... Как об этом:

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