Linux найти файлы измененные за сутки

Как найти недавно модифицированные файлы в Linux

Зачастую требуется найти файлы, которые были модифицированы/созданы недавно, или за какой-либо промежуток времени. Например, администратор изменял настройки системы, но забыл, где он их сохранил. Или вы хотите проверить изменялись ли, и как, ваши файлы. Если вам необходимо найти недавно измененные файлы в linux, это можно сделать с помощью команды find.

Чтобы найти недавно модифицированные файлы, отсортированные в обратном порядке (то есть файл, измененный последним, будет показан первым), используется команда вида:

Вышеприведенная команда сортирует файлы в /etc (и поддиректориях) в обратном порядке по времени их изменения, и выводит отсортированный список вместе с их расположением в файловой системе и временем последнего изменения. Если вы также хотите проверить директории, опустите опцию «-type f».

Поиск файлов, которые были модифицированы в последние 60 минут в директории /target_directory и во всех ее поддиректориях:

Поиск файлов, которые были модифицированы в последние 2 дня в директории /target_directory и во всех ее поддиректориях:

Поиск файлов, которые были модифицированы в последние 2 дня в директории /target_directory и ее поддиректориях глубиной до 3 уровня:

Вы также можете задать диапазон времени модификации. Поиск файлов, которые были модифицированы в последние 7 дней, но не позднее чем 3 дня назад:

Все эти команды выводят только путь к найденным файлам. Вы можете также детализировать вывод информации с помощью опции «-exec».
Поиск файлов в директории /target_directory (и во всех ее поддиректориях), которые были модифицированы в последние 60 минут и вывод атрибутов файлов:

В качестве альтернативы вы можете использовать для этого команду xargs:

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

Источник

Найти последние отредактированные файлы в Linux

Часто требуется найти файлы (именованная область данных на носителе информации), которые были модифицированы/созданы недавно, или за какой-либо проем времени. Например, администратор изменял настройки системы, но забыл, где он их сохранил. Или вы хотите испробовать изменялись ли, и как, ваши файлы. Если вам необходимо найти недавно измененные файлы в linux, это возможно сделать с помощью команды find. Чтобы найти недавно модифицированные файлы, отсортированные в оборотном порядке (то есть файл, измененный последним, будет показан первым), используется бригада вида:

find /data/smb/Свалка -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r

Ответ станет примерно таким:

2012-09-14 22:25:14.0000000000 /etc/shadow

2012-08-17 00:56:36.0000000000 /etc/resolv.conf
2012-08-16 23:22:57.0000000000 /etc/ld.so.cache
2012-08-16 23:22:29.0000000000 /etc/mtab
2012-08-16 23:22:04.0000000000 /etc/network/run/ifstate
2012-07-10 01:19:24.0000000000 /etc/papersize

Вниманье! В Putty при копировании команды в буфер обмена и последующей вставке в консоль Linux, исчезают символы %. Требуется ручная корректировка строки с командой.

Вышеприведенная команда классифицирует файлы в /etc (и поддиректориях) в обратном порядке по времени их изменения, и выводит отсортированный список разом с их расположением в файловой системе и временем последнего изменения. Если вы также хотите испробовать директории, опустите опцию «-type f». Поиск файлов, которые были модифицированы в заключительные 60 минут в директории /target_directory и во всех ее поддиректориях:

Читайте также:  Что такое лаунчер mac os

$ find /target_directory -type f -mmin -60

Розыск файлов, которые были модифицированы в последние 2 дня в директории /target_directory и во всех ее поддиректориях:

$ find /target_directory -type f -mtime -2

Розыск файлов, которые были модифицированы в последние 2 дня в директории /target_directory и ее поддиректориях бездной до 3 уровня:

$ find /target_directory -type f -mtime -2 -depth -3

Вы также можете подать диапазон времени модификации. Поиск файлов, которые были модифицированы в последние 7 суток, но не позднее чем 3 дня назад:

$ find /target_directory -type f -mtime -7 ! -mtime -3

Все эти бригады выводят только путь к найденным файлам. Вы можете также детализировать вывод данных с помощью опции «-exec».
Поиск файлов в директории /target_directory (и во абсолютно всех ее поддиректориях), которые были модифицированы в последние 60 минут и вывод атрибутов файлов:

$ find /target_directory -type f -mmin -60 -exec ls -al <> \;

В свойстве альтернативы вы можете использовать для этого команду xargs:

$ find /target_directory -type f -mmin -60 | xargs ls -l

Адресуете внимание, что эти команды найдут также файлы, созданные в заданный промежуток времени.

Источник

Команда find в Linux – мощный инструмент сисадмина

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

Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:

  • Дате добавления.
  • Содержимому.
  • Регулярным выражениям.

Данная команда будет очень полезна системным администраторам для:

  • Управления дисковым пространством.
  • Бэкапа.
  • Различных операций с файлами.

Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.

Синтаксис команды find:

  • directory-to-search (каталог поиска) – это отправной каталог, с которой find начинает поиск файлов по всем подкаталогам, которые находятся внутри. Если не указать путь, тогда поиск начнется в текущем каталоге;
  • criteria (критерий) – критерий, по которым нужно искать файлы;
  • action (действие) – что делать с каждым найденным файлом, соответствующим критериям.

Поиск по имени

Следующая команда ищет файл s.txt в текущем каталоге:

  • . (точка) – файл относится к нынешнему каталогу
  • -name – критерии по которым осуществляется поиск. В данном случае поиск по названию файла.

В данном случае критерий -name учитывает только символы нижнего регистра и файл S.txt не появиться в результатах поиска. Чтобы убрать чувствительность к регистру необходимо использовать –iname.

Для поиска всех изображений c расширением .png нужно использовать шаблон подстановки *.png:

Можно использовать название каталога для поиска. Например, чтобы с помощью команды find найти все png изображения в каталоге home:

Если выдает слишком много ошибок в отказе разрешения, тогда можно добавить в конец команды – 2> /dev/null. Таким образом сообщения об ошибках будут перенаправляться по пути dev/null, что обеспечит более чистую выдачу.

Поиск по типу файла

Критерий -type позволяет искать файлы по типу, которые бывают следующих видов:

  • f – простые файлы;
  • d – каталоги;
  • l – символические ссылки;
  • b – блочные устройства (dev);
  • c – символьные устройства (dev);
  • p – именованные каналы;
  • s – сокеты;

Например, указав критерий -type d будут перечислены только каталоги:

Поиск по размеру файла

Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -size.

  • «+» — Поиск файлов больше заданного размера
  • «-» — Поиск файлов меньше заданного размера
  • Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать.
Читайте также:  Не могу увеличить диск с за счет диска d windows 10

В данном случае поиск выведет все файлы более 1 Гб (+1G).

Единицы измерения файлов:

Поиск пустых файлов и каталогов

Критерий -empty позволяет найти пустые файлы и каталоги.

Поиск времени изменения

Критерий -cmin позволяет искать файлы и каталоги по времени изменения. Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:

Таким образом можно найти все файлы в текущем каталоге, которые были созданы или изменены в течение часа (менее 60 минут).

Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60.

Поиск по времени доступа

Критерий -atime позволяет искать файлы по времени последнего доступа.

Таким образом можно найти файлы, к которым не обращались последние полгода (180 дней).

Поиск по имени пользователя

Опция –user username дает возможность поиска всех файлов и каталогов, принадлежащих конкретному пользователю:

Таким образом можно найти все файлы пользователя tisha в каталоге home, а 2>/dev/null сделает выдачу чистой без ошибок в отказе доступа.

Поиск по набору разрешений

Критерий -perm – ищет файлы по определенному набору разрешений.

Поиск файлов с разрешениями 777.

Операторы

Для объединения нескольких критериев в одну команду поиска можно применять операторы:

Например, чтобы найти файлы размером более 1 Гбайта пользователя tisha необходимо ввести следующую команду:

Если файлы могут принадлежать не только пользователю tisha, но и пользователю pokeristo, а также быть размером более 1 Гбайта.

Перед скобками нужно поставить обратный слеш «\».

Действия

К команде find можно добавить действия, которые будут произведены с результатами поиска.

  • -delete — Удаляет соответствующие результатам поиска файлы
  • -ls — Вывод более подробных результатов поиска с:
    • Размерами файлов.
    • Количеством inode.
  • -print Стоит по умолчанию, если не указать другое действие. Показывает полный путь к найденным файлам.
  • -exec Выполняет указанную команду в каждой строке результатов поиска.

-delete

Полезен, когда необходимо найти и удалить все пустые файлы, например:

Перед удалением лучше лишний раз себя подстраховать. Для этого можно запустить команду с действием по умолчанию -print.

Данное действие является особенным и позволяет выполнить команду по вашему усмотрению в результатах поиска.

  • command – это команда, которую вы желаете выполнить для результатов поиска. Например:
    • rm
    • mv
    • cp
  • <> – является результатами поиска.
  • \; — Команда заканчивается точкой с запятой после обратного слеша.

С помощью –exec можно написать альтернативу команде –delete и применить ее к результатам поиска:

Другой пример использования действия -exec:

Таким образом можно скопировать все .jpg изображения в каталог backups/fotos

Заключение

Команду find можно использовать для поиска:

  • Файлов по имени.
  • Дате последнего доступа.
  • Дате последнего изменения.
  • Имени пользователя (владельца файла).
  • Имени группы.
  • Размеру.
  • Разрешению.
  • Другим критериям.

С полученными результатами можно сразу выполнять различные действия, такие как:

  • Удаление.
  • Копирование.
  • Перемещение в другой каталог.

Команда find может сильно облегчить жизнь системному администратору, а лучший способ овладеть ей – больше практиковаться.

Источник

Linux найти файлы измененные за сутки

Команда удаляет файлы с расширением *.zip, которые больше 100 мегабайт.

Удалить все файлы с расширением *.tar больше 100Mб используя сокращенный псевдоним rm100m (Remove 100M). Подобным же способом создаём команды для удаления архивов *.tar больше 1, 2 и 5Гб.

Читайте также:  Kns windows 10 activator

Поиск файлов с одновременным изменением прав доступа

Изменим свойства всех php-файлов (php, php4, php5) в директории /var/www/ на 644 (пользователь может изменять и читать, группа и остальные только читать):

Найти файлы, заканчивающиеся определёнными символами/буквами

Найти в каталоге /etc (и во вложенных каталогах) все файлы, имена которых заканчиваются на .conf и владельцем которых является пользователь cupsys.

Удаление временных файлов

Удалим все файлы в текущей директории, заканчивающиеся на

. Обычно файлы с тильдой на конце являются временными файлами, созданными текстовыми редакторами. Этим же способом можно удалить файлы, заканчивающие любыми нужными символами. Вместо xargs безопаснее использовать f ind . -print0 | xargs -0 cmd

Поиск файлов, измененных в определённое время

В четырёх строках ниже производится четыре поиска файлов: тех, что были изменены за предыдущий день, за последние десять минут, более чем год назад и ровно 4 дня назад (четвёртый поиск, наверное, не самый остро необходимый). Внимание: если перед цифрой не стоит + или –, то ищутся файли, изменённые ровно в указанное время.

Опция -daystart определяет отсчет времени с момента начала текущих суток.

Чтобы вывести все файлы в Вашем домашнем каталоге, модифицированные вчера, введите:

Чтобы вывести все файлы в каталоге /usr, модифицированные в течение года, введите:

Чтобы вывести все файлы в Вашем домашнем каталоге, модифицированные в период от 2 до 4 дней тому назад, наберите:

Чтобы найти все файлы новее определенной даты, используйте следующий трюк: создайте временный файл в каталоге /tmp и установите дату его модификации на требуемую с помощью touch, а затем определите его как аргумент для -newer . Чтобы вывести все файлы в Вашем домашнем каталоге, модифицированные после 4 мая текущего года, введите:

Поиск средствами which и whereis

Программа whereis производит поиск исполняемого файла, исходного кода и документации (страницы руководства) для заданной команды, просматривая каталоги из заранее определенного списка. Выведем информацию о местонахождении исполняемого (двоичного) файла и man-страницы для команды ls .

Команда which еще более специализирована. Она ищет путь до заданной команды и выводит первый результат. Следующая команда сообщает, что команда vi — это исполняемый файл /usr/bin/vi. По сути, это ответ на вопрос: «Если бы я ввел команду vi, то какая программа запустилась бы на самом деле?»

Чтобы определить, установлен ли в Вашей системе perl и где он расположен, введите:

Поиск по содержимому файлов с помощью grep

Как мы убедились, средства поиска типа f ind могут искать файлы по имени, размеру, владельцу, времени доступа и многим другим параметрам, но не могут искать файлы по содержимому. Оказывается, файлы достаточно изящно находятся по содержимому при помощи grep , используемой совместно с шаблонами оболочки для файлов. В примере ниже мы просим grep вывести имена файлов, содержащих строку Hudson. Шаблон */* разворачивается оболочкой и означает список всех файлов, находящихся на один уровень ниже текущего каталога.

Если нужно наложить некоторые условия на имя файла, следующей командой будем искать только файлы с расширением .txt, внутри которых есть строка Hudson:

Можно расширить диапазон поиска и на большее количество уровней, но на практике весьма вероятна ситуация, когда подставленных файлов будет столько, что строка со списком аргументов превысит допустимую длину:

Более эффективный подход — использовать grep совместно с f ind . Поиск файлов с расширением .txt, содержащих строку Hudson и находящихся в моем домашнем каталоге (‘

Источник

Оцените статью