команда поиска:поиск по заданному времени

StackOverflow https://stackoverflow.com/questions/1204059

  •  05-07-2019
  •  | 
  •  

Вопрос

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

find .  -ctime "0037043007" -exec mv {} /tmp +
Это было полезно?

Решение

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

В частности, -newerct '30-Jul-2009 04:37' option, кажется, делает большую часть того, что вы хотите.

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

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

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

find . -ctime "0037043007" -exec mv \{} /tmp/ \;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top