Поиск недавно измененных файлов - полезный параметр при устранении неполадок в коде или на сервере. Какие файлы журнала были изменены? Какие файлы изменились, когда я выполнил эту команду? Универсальная команда find может помочь вам получить ответы.
Команда ниже найдет все файлы, которые были изменены за последние пять минут в текущем каталоге.
1 | find . -type f -mmin -5 |
Это только один пример. Позвольте мне поделиться тем, как можно подробно перечислить файлы, к которым обращались и которые были созданы за последние n минут/дней.
Поиск измененных файлов в Linux
Прежде чем перейти к объяснительной части, сначала я хотел бы поделиться синтаксисом того, как вы можете использовать команду find для поиска файлов, которые были изменены за последние n минут.
1 | find [путь] -type f -mmin n |
Здесь n указывает, сколько минут вы хотите проверить. Но у вас также есть некоторые опции, например:
- -n будет проверять файлы, измененные менее чем за n минут.
- +n будет проверять файлы, измененные более чем за n минут
- n будет проверять файлы, измененные ровно n минут назад.
Аналогично, вы также можете использовать -mtime вместо -mmin для проверки файлов, измененных несколько дней назад.
Поиск файлов, измененных за последние 5 минут
Предположим, я хочу найти в списке файлы, которые были изменены за последние 5 минут в каталоге var; моя команда будет выглядеть следующим образом:
1 | find .var/ -type f -mmin -5 |
Я добавлю -ls, чтобы получить более чистый вид и больше информации, такой как владелец файла, разрешения и время модификации.
1 | find .var/ -type f -mmin -5 -ls |
Команда find позволяет выполнять несколько действий над результатом. Одним из таких действий является -ls. Вам не обязательно использовать find-exac или xargs для команды ls.
Поиск файлов, измененных за последние n дней
Чтобы найти измененные файлы за последние n дней вместо n минут, нужно просто использовать -mtime вместо -mmin.
Предположим, я хочу найти файлы, которые были изменены за последние сутки, моя команда будет следующей:
1 | find /media/Downloads -type f -mtime -1 -ls |
Поиск файлов старше X дней
Вы можете использовать параметр mtime для поиска старых файлов, которые не были изменены в последнее время.
Допустим, вы хотите найти файлы старше 30 дней в текущем каталоге. Используйте эту команду:
1 | find . -mtime +30 |
Найти измененные каталоги за последние n минут или дней
Команда find также может вывести список измененных каталогов.
Просто замените -type f на -type d, что позволит вам искать не файлы, а каталоги.
Для демонстрации я покажу, как можно получить список измененных каталогов в каталоге /.cache/mozilla/firefox:
1 | find .cache/mozilla/firefox/ -type d -mmin -5 -ls |
Аналогичным образом можно найти каталоги, над которыми вы работали несколько дней назад.
1 | find Downloads/ -type d -mtime -1 -ls |
Поиск файлов, к которым недавно обращались или которые были созданы
Как же найти файлы, к которым обращались или которые были созданы за последние n минут?
Чтобы найти файлы, к которым обращались в течение последних n минут, вам придется использовать -amin вместо -mmin.
Чтобы найти файлы, к которым обращались в течение последних 5 минут внутри моего предпочтительного каталога, я использую следующую команду:
1 | find /media/Downloads -type f -amin -5 -ls |
Таким же образом можно найти файлы, созданные за последние n минут, используя -cmin вместо -amin.
1 | find /media/Downloads -type f -cmin -5 -ls |
Заключение
В принципе, возможности использования не ограничены. Вы можете изменить его от -n до +n, и вы сможете искать более старые файлы. Используйте ctime, и вы сможете получить недавно созданные или древние файлы.
Изучение основ позволит вам использовать команду find в соответствии с вашими потребностями. Я считаю, что это руководство дало вам достаточное понимание использования параметра time команды find.