Как установить (найти) atime в секундах?

Как установить время в миллисекундах, секундах или минутах? По умолчанию используются дни:

-time n
Последний доступ к файлу n * 24 часа назад. Когда выясняется, сколько 24-часовых периодов назад последний доступ к файлу, любая дробная часть игнорируется, поэтому для сопоставления -time +1 к файлу должен быть доступ как минимум два дня назад.

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

 find . -atime 0.042 -print 

Но, может быть, есть лучшее решение – возможно, другая команда? Или, возможно, этого не может быть сделано. Для поиска файлов, измененных за последние x минут, существует -mmin что позволяет установить время в минутах. Возможно, отсутствие такой опции для времени доступа подразумевает, что информация не сохраняется одинаково?

Я использую Ubuntu 16.04.

2 Solutions collect form web for “Как установить (найти) atime в секундах?”

Обратите внимание, что когда вы делаете -mtime <timespec> , <timespec> проверяет возраст файла в момент начала find .

Если вы не запустите его в очень маленьком дереве каталогов, find потребует несколько миллисекунд (если не секунды или часы) для обхода дерева каталогов и выполнения lstat() для каждого файла. Поэтому иметь точность короче секунды не обязательно имеет большой смысл.

Также обратите внимание, что не все файловые системы поддерживают отметки времени с субсекундной детализацией.

Сказав это, есть несколько вариантов.

С find многих BSD и одного из schily-tools вы можете сделать:

 find . -atime -1s 

Поиск файлов, к которым был обращен последний доступ менее чем за секунду назад (по сравнению с началом find ).

С zsh :

 ls -ld -- **/*(Dms-1) 

Для субсекундной гранулярности с помощью инструментов GNU вы можете использовать ссылочный файл, который вы установили с touch :

 touch -ad '0.5 seconds ago' ../reference find . -anewer ../reference 

Или с последними версиями perl :

 perl -MTime::HiRes=lstat,clock_gettime -MFile::Find -le ' $start = clock_gettime(CLOCK_REALTIME) - 0.5; find( sub { my @s = lstat $_; print $File::Find::name if @s and $s[8] > $start }, ".")' 

С помощью GNU find вы можете использовать -amin вместо -atimes . Как вы могли догадаться, это «File был последний доступ n минут назад».

Тем не менее, имейте в relatime что большинство современных систем по умолчанию используют параметр relatime для файловых систем, который сохраняет записи метаданных только путем обновления, если файл был фактически изменен с момента последнего доступа или если был установлен порог (обычно 24 часа).

Таким образом, вы, вероятно, захотите изменить это для рассматриваемой файловой системы или искать другой подход. incrond – это удобный способ настроить сценарии для работы с файловой системой без необходимости писать собственный демон.

  • Получить последний каталог (не последний файл)
  • Сравнение одного столбца файла с другим
  • Как сравнить два каталога полностью без git?
  • Как я могу перетасовать страницы из pdf-файла в случайном порядке?
  • Перемещение файлов по каталогам по критериям глубины
  • Как проверить, пуст ли файл или имеет только пустые символы?
  • ls colors: почему некоторые из моих шрифтов черные, а другие - зеленые на выходе ls
  • Как «кошка» обрабатывает большие файлы при использовании в составе трубы?
  • Повреждение файлов с использованием rsync, нескольких процессов rsync, перемещение / переименование исходного файла
  • Как ссылаться на несколько файлов из каталога на одну команду
  • Как искать рекурсивно в нескольких уровнях встроенных tar tgz-файлов?
  • Interesting Posts

    Где хранятся данные xfce4-notes?

    пусть скрипт найдет путь сам по себе

    Включение FIPS в зашифрованной системе CentOS с помощью luks ломает пароль для загрузки

    Живой / загрузочный Kali linux с секционированного жесткого диска USB (Mac / OS X)?

    Как я настойчиво устанавливаю MTU для подключения PPTP VPN в Ubuntu?

    Патч Glibc для уязвимости getaddrinfo ()

    sudo su – anotherusername, не запрашивающий пароль

    crontab для команды запускать каждую неделю и три месяца?

    Остановить все процессы пользователем: дети супервизора все еще работают

    Как установить компилятор Fortran в систему Ubuntu без доступа в Интернет?

    Есть ли одна строка для печати самой длинной строки в файлах в каталоге?

    Могу ли я использовать iptables для пересылки между интерфейсами без установки / proc / sys / net / ipv4 / ip_forward?

    Virtualmin – Как использовать зарезервированные имена электронной почты? (domains@example.com)

    Как сделать удаленный вход в Linux?

    Создание личного монтирования tmpfs в сценарии оболочки

    Linux и Unix - лучшая ОС в мире.