Я выполняю команду, которая обновляет файл в неизвестном месте в моей системе. Что это за команда find
/locace
/what , которая сообщит мне, какой файл последний раз обновлялся в системе? Эта команда должна знать, чтобы не искать в proc
или любых других местах, которые не имеют отношения.
2 ответа
Это вам поможет?
find / -mtime -5 | head -1
Он сообщает вам, какие файлы были изменены за последние 5 минут, и выводит первую строку.
Конечно, вы можете указать это, чтобы искать только файлы PNG, например:
find / -name "*.png" -mtime -5 | head -1
Где /
- каталог, в котором начинается поиск - в этом случае системный корень, -name "*.png"
- это фильтр для вашего поиска, -mtime -5
- это фильтр, используемый для выбора только файлов, измененных за последние 5 минут, и | head -1
берет вывод всего перед конвейером и печатает только первую строку.
Имейте в виду, что без первого фильтра он также проверяет каталоги, поэтому рекомендуется использовать фильтр имен файлов.
Редактировать: Если вы хотите исключить некоторые папки, то, вероятно, лучше написать сценарий bash, в котором для поиска указано N папок, а затем выполнить команду для каждой из них.
Это означает, что ваш скрипт будет выполняться:
find /your/first/folder -name "*.png" -mtime -5 | head -1
затем
find /your/second/folder/location -name "*.png" -mtime -5 | head -1
и так далее..
Вы могли видеть, какие файлы в настоящее время изменяются с помощью команды 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 '
Эта команда может быть более подходящей при использовании в определенных местах.