[Перевод] Как в Linux найти файлы, изменённые за последние 24 часа
Бывают ситуации, когда нужно быстро найти недавние изменения в файлах. Для этого в команде find
можно указать время, когда были произведены эти изменения. В этой статье мы рассмотрим несколько полезных команд, которые помогут быстро найти файлы, изменённые за последние 24 часа. Публикация является переводом и будет полезна тем, кто изучает и постоянно использует Linux в работе.
Команда find
— это мощная и эффективная утилита для поиска файлов и каталогов на основе различных критериев, включая время модификации, время создания и время доступа в вашей системе Linux.
Чтобы выполнить поиск файлов на основе времени их модификации, команда find
предлагает опцию -mtime
. Она позволяет искать файлы на основе времени их модификации, измеряемого в днях.
1. Команда find с опцией -mtime
Чтобы найти все файлы в каталоге Downloads, которые были изменены ровно 24 часа назад, выполните следующую команду.
$ find ~/Downloads -type f -mtime 0
Если вы хотите выполнить поиск по всей системе, вы можете использовать корневой каталог /
, но имейте в виду, что это может занять много времени и может вернуть большое количество результатов.
$ find / -type f -mtime 0
Если вы хотите найти файлы в текущем каталоге и его подкаталогах, используйте следующую команду.
$ find . -type f -mtime -0
Разбивка приведённой команды:
— опция -type f
гарантирует, что в результаты поиска включены только обычные файлы (без каталогов и других специальных файлов);
— опция -mtime -0
ограничивает поиск файлами, изменёнными в течение последних 24 часов.
Вы даже можете использовать значение "-1"
для флага "-mtime"
в команде find
, чтобы получить все файлы, обновлённые в течение 24 часов.
$ find ~/Downloads -type f -mtime -1
В приведённой команде "-1"
обозначает количество дней, а отрицательный знак — «меньше чем». То есть она будет искать файлы, изменённые за последние 24 часа.
2. Команда find с опцией -mmin
Теперь давайте рассмотрим ещё один вариант команды find
, названный -mmin
(«Modification Minutes», минуты модификации), который используется для поиска файлов на основе времени их модификации в минутах вместо дней.
$ find ~/Downloads -type f -mmin -1440
В приведённой команде -1440
означает «меньше 1440 минут», где значение получено путём преобразования 24 часов в минуты (24 часа * 60 минут).
3. Команда find с опцией -newermt
Опция -newermt
используется для поиска файлов по времени их модификации, но, в отличие от опций -mtime
и -mmin
, позволяет указать точную дату и время, а не относительный промежуток времени.
$ find ~/Downloads -type f -newermt "24 hours ago"
Давайте рассмотрим ещё один аргумент — »1 day ago», который служит для поиска файлов, изменённых за последний день:
$ find ~/Downloads -type f -newermt "1 day ago"
Вы также можете найти файлы, изменённые в определённую дату (независимо от времени):
$ find ~/Downloads -type f -newermt "2023-08-05"
4. Использование команд ls и Grep
Наконец, давайте рассмотрим ещё одну классную команду, которая объединяет команды "ls"
и "grep"
для поиска файлов, изменённых за последние 24 часа.
$ ls -lt ~/Downloads | grep 'Jul 21'
Заключение
Умение быстро находить файлы, изменённые за последние 24 часа — ценный навык для всех, кто работает с файлами в Unix-подобных системах. Благодаря команде find
и её гибким опциям можно легко и эффективно найти файлы, зная хотя бы примерное время их изменения.
Если вас интересует практика эффективной работы в Linux, приходите в Слёрм на курс «Администрирование в Linux. Мега». Он поможет вам восполнить пробелы и систематизировать свои знания. Вы изучите особенности Linux, познакомитесь с best practices и научитесь экономить время при решении задач. В курсе будет много практики, примеров из опыта спикера и компании Southbridge.
Ознакомиться с программой можно на нашем сайте.
Ближайший старт — 26 февраля 2024 года.