команда find: поиск по созданному времени - PullRequest
3 голосов
/ 30 июля 2009

Как я могу найти вещи, созданные "Jul 30 04:37" и переместить их в / tmp? Что-то не так:

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

Ответы [ 3 ]

4 голосов
/ 30 июля 2009

См. Руководство GNU find форматы ввода времени тоже информация).

В частности, опция -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).

2 голосов
/ 30 июля 2009
for file in $(ls -lR | grep "Jul 14" | awk '{print $9}')
do
mv $file /tmp
done
0 голосов
/ 30 июля 2009

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

find . -ctime "0037043007" -exec mv \{} /tmp/ \;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...