Я выполняю команду, которая обновляет файл в неизвестном месте в моей системе. Что это за команда find/locace/what , которая сообщит мне, какой файл последний раз обновлялся в системе? Эта команда должна знать, чтобы не искать в proc или любых других местах, которые не имеют отношения.

2 ответа2

1

Это вам поможет?

find / -mtime -5 | head -1

Он сообщает вам, какие файлы были изменены за последние 5 минут, и выводит первую строку.

Конечно, вы можете указать это, чтобы искать только файлы PNG, например:

find / -name "*.png" -mtime -5 | head -1

Где / - каталог, в котором начинается поиск - в этом случае системный корень, -name "*.png" - это фильтр для вашего поиска, -mtime -5 - это фильтр, используемый для выбора только файлов, измененных за последние 5 минут, и | head -1 берет вывод всего перед конвейером и печатает только первую строку.

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

mtime reference

Редактировать: Если вы хотите исключить некоторые папки, то, вероятно, лучше написать сценарий bash, в котором для поиска указано N папок, а затем выполнить команду для каждой из них.

Это означает, что ваш скрипт будет выполняться:

find /your/first/folder -name "*.png" -mtime -5 | head -1

затем

find /your/second/folder/location -name "*.png" -mtime -5 | head -1

и так далее..

0

Вы могли видеть, какие файлы в настоящее время изменяются с помощью команды inotifywait .

inotifywait -rme modify /folder/to/monitor/

в этом списке будут перечислены все файлы и каталоги, измененные в /folder/to/monitor/ и все его поддиски.

-r : рекурсивный

-m : контролировать файловую систему, пока пользователь не убьет

-e : указать типы событий для мониторинга

и вы также можете сказать команде игнорировать некоторые каталоги

inotifywait --exclude '^/proc/' -rme modify /

Имейте в виду, что настройка такого мониторинга во всей файловой системе займет довольно много времени, и вам также может понадобиться увеличить лимит user_watches (по умолчанию 8k).

Пожалуйста, увеличьте количество часов inotify, разрешенных для пользователя, с помощью `/proc/sys/fs/inotify/max_user_watches '

Эта команда может быть более подходящей при использовании в определенных местах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .