поиск файлов по дате ls grep

OffSpEEd

Знаток
Регистрация
17 Авг 2007
Сообщения
158
Реакции
25
как на серваке найти файлы созданные например с 00:00 по 12:25

например ls -l | grep 00:00 выдает только файлы созданные в это время
а как задать промежуток?
 
find /path/to/dir/ -mindepth 1 \
-newermt 'YYYY-MM-DD HH:MM' \
! -newermt 'YYYY-MM-DD HH:MM' \
-ls
Верхнее - нач. дата, нижнее - конечная
 
Есть куча способов
например по штампу времени похожего файла. Найдет от его даты и выше
find . -type f -newer filename -print

за последние 7 дней:

find . -mtime +7

вариации:
-mtime
-atime
-ctime
-Btime

К примеру, все что находим, пихаем в архивчик:
find . -type f -newer <filename> -print | tar czv -T- -f arhive12.0.3.tgz
 
пробовал find . -newermt 2015-08-07 00:00 ! -newermt 2015-08-07 01:10
выдает ошибку

но ищет либо только по датам
find '$dir' -newermt 2015-08-07 ! -newermt 2015-08-07
либо только по времени
find '$dir' -newermt 00:00 ! -newermt 01:10
 
find '$dir' -newermt '2015-08-07 00:00' ! -newermt '2015-08-07 00:15'
кавычки забыл
 
спасибо. теперь работает. я так понимаю чтобы в этих найденных файлах что-либо найти нужно использовать grep.

find '$dir' -newermt '2015-08-07 00:00' ! -newermt '2015-08-07 00:15' | grep -l 'needle'
директорию для греп получается не надо указывать?
 
да. команда после прямого слеша подразумевает действие с результатом команды до слэша
 
для упрощения использовал эту конструкцию :
find '$dir' -mtime -1d | grep -i 'needle'

в общем что предыдущий вариант что этот, grep ищет НЕ ВНУТРИ файлов, а ищет в названии выданных Find'ом файлов.

а нужно чтобы греп искал внутри этих файлов. день промучался, так и не докопался


решение найдено:
find '$dir' -mtime -1d -exec grep -i -H 'needle' {} \;
 
Последнее редактирование:
Назад
Сверху