Поиск по сайту:

Как найти последние или сегодняшние измененные файлы в Linux


В этой статье мы объясним два простых совета по командной строке, которые позволят вам вывести список только сегодняшних файлов.

Одна из распространенных проблем, с которыми пользователи Linux сталкиваются в командной строке, — это поиск файлов с определенным именем. Это может быть намного проще, если вы действительно знаете имя файла.

Однако предположим, что вы забыли имя файла, который вы создали (в вашей папке home, содержащей сотни файлов) ранее в течение дня, но вам нужно срочно его использовать.

Ниже приведены различные способы перечисления всех файлов, которые вы создали или изменили (прямо или косвенно) сегодня.

1. Используя команду ls, вы можете перечислить только сегодняшние файлы в вашей домашней папке следующим образом:

  1. -a — вывести список всех файлов, включая скрытые файлы
  2. -l – включает формат длинного списка
  3. --time-style=FORMAT — показывает время в указанном ФОРМАТЕ
  4. +%D – показать/использовать дату в формате %m/%d/%y
ls  -al --time-style=+%D | grep 'date +%D'

Кроме того, вы можете отсортировать полученный список в алфавитном порядке, включив флаг -X:

ls -alX --time-style=+%D | grep 'date +%D'

Вы также можете составить список по размеру (сначала самый большой), используя флаг -S:

ls -alS --time-style=+%D | grep 'date +%D'

2. Опять же, можно использовать команду find, которая практически более гибкая и предлагает множество опций, чем ls, для той же цели, что и ниже.

  1. Уровень -maxlength используется для указания уровня (с точки зрения подкаталогов) ниже начальной точки (в данном случае текущего каталога), до которого будет выполняться операция поиска.
  2. -newerXY, это работает, если метка времени X рассматриваемого файла новее, чем метка времени Y ссылки на файл. X и Y представляют собой любую из букв ниже:

    1. a – время доступа к ссылке на файл
    2. B – время рождения ссылки на файл
    3. c – время изменения статуса индексного дескриптора
    4. m – время модификации ссылки на файл
    5. t – ссылка интерпретируется непосредственно как время

Это означает, что будут учитываться только файлы, измененные 2016-12-06:

find . -maxdepth 1 -newermt "2016-12-06"

Важно! Используйте правильный формат даты в качестве ссылки в приведенной выше команде поиска. Если вы используете неправильный формат, вы получите сообщение об ошибке тот, что ниже:

find . -maxdepth 1 -newermt "12-06-2016"

find: I cannot figure out how to interpret '12-06-2016' as a date or time

Альтернативно, используйте правильные форматы ниже:

find . -maxdepth 1 -newermt "12/06/2016"
OR
find . -maxdepth 1 -newermt "12/06/16"

Вы можете получить дополнительную информацию об использовании команд ls и find в нашей следующей серии статей на эту тему.

  1. Освойте команду ls в Linux с помощью этих 15 примеров
  2. 7 полезных трюков с «ls» для пользователей Linux
  3. Команда «найти» в Master Linux с 35 примерами
  4. Способы найти несколько имен файлов с расширениями в Linux

В этой статье мы объяснили два важных совета о том, как вывести список только сегодняшних файлов с помощью команд ls и find. Воспользуйтесь формой обратной связи ниже, чтобы отправить нам любые вопросы или комментарии по этой теме. Вы также можете сообщить нам о любых командах, используемых для той же цели.