Примеры использования команды find в Linux

Большинство популярных файловых менеджеров для операционных систем на ядре Linux обладают достаточно функциональным инструментом поиска. Однако не всегда присутствующих в нем параметров хватает пользователю для поиска необходимой информации. В таком случае на помощь приходить стандартная утилита, запускающаяся через «Терминал». Она позволяет путем ввода команды, аргумента и опции запросто отыскать требуемые данные в определенной директории или во всей системе.

Используем команду find в Linux

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

Переход в директорию через консоль

Для начала хотелось бы немного отступить от основной команды и затронуть тему дополнительных действий, которые в будущем помогут при управлении из консоли. Дело в том, что утилиты в дистрибутивах Linux не заточены под поиск всех находящихся на компьютере элементов. Все процессы следует запускать только с указанием полного расположения к элементам либо переходить в расположение через команду cd. Сделать это можно достаточно легко:

  1. Откройте установленный файловый менеджер и перейдите в требуемую папку, где хотите в дальнейшем использовать команду find.
  2. Переход к нужной директории через файловый менеджер Linux

  3. На любом объекте щелкните ПКМ и найдите пункт «Свойства».
  4. Переход к свойствам объекта в операционной системе Linux

  5. Вы увидите его родительскую папку с полным указанием пути. Запомните его, чтобы осуществить переход из «Терминала».
  6. Узнать родительскую папку объекта через свойства в Linux

  7. Теперь запустите консоль, например, через меню.
  8. Запуск терминала для последующего ввода команд в Linux

  9. Пропишите там команду cd /home/user/folder, где user — имя домашней папки пользователя, а folder — название требуемой директории.
  10. Переместиться к расположению в терминале Linux

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

Поиск файлов в текущей директории

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

Использование команды find без аргументов в Linux

Активация find без аргументов и опций используется тогда, когда надо просмотреть сразу все элементы. Если их название полностью не помещается в строки, стоит изменить команду, чтобы она обрела вид find . -print.

Поиск файлов в указанном каталоге

Команда для отображения файлов через заданный путь практически не отличается от той, которую мы упомянули выше. Вам так же следует прописать find, а после добавить ./folder, если хотите узнать данные о каталоге в текущем расположении, либо же потребуется указать полный путь, путем ввода, например, find ./home/user/downloads/folder, где folder — конечная директория. Каждые элементы будут выведены отдельными строками в порядке их глубины.

Использование команды find с указанием расположения файла в Linux

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

Иногда появляется надобность отобразить только удовлетворяющие по названию объекты. Тогда пользователю нужно задать отдельную опцию для команды, чтобы она поняла обращение. Строка ввода обретает такой вид: find . -name "word", где word — ключевое слово для поиска, которое обязательно прописывается в двойных кавычках и с учетом регистра каждого символа.

Поиск файлов по имени через команду find в Linux

Если же вы не знаете точный регистр каждой буквы либо же желаете отобразить все подходящие названия, не взяв во внимание этот параметр, введите в консоли find . -iname "word".

Для фильтрации результатов по ключевому слову к аргументу -name добавляется еще один. Команда обретает вид find . -not -name "word", где word — слово, которое надо исключить.

Включить фильтрацию по ключевому слову команде find в Linux

Еще порой возникает потребность отыскать объекты по одному ключу, исключив при этом другой. Тогда поочередно присваивается сразу несколько опций поиска и строка ввода получается следующей: find . -name "word" -not name "*.txt". Обратите внимание, что во втором аргументе в кавычках указано «*.txt», а это значит, что find работает не только с названиями, но и с форматами файлов, которые задаются в таком виде.

Совмещенный поиск по имени командой find в Linux

Существует и оператор ИЛИ. Он позволяет найти один или сразу несколько подходящих аргументов. Каждый указывается отдельно, с добавлением при этом соответствующих аргументов. В итоге получится примерно следующее: find -name "word" -o -name "word1".

Применение опции ИЛИ в команде find Linux

Указание глубины поиска

Команда find поможет юзеру и тогда, когда ему нужно найти содержимое директорий только до указанной глубины, например, не требуется осуществление анализа внутри третьей подпапки. Для установки подобных ограничений впишите find . -maxdepth N -name "word", где N — максимальная глубина, а -name «word» — любые последующие аргументы.

Указать глубину сканирования командой find в Linux

Поиск в нескольких директориях

Во многих каталогах присутствует сразу по несколько папок с различным содержимым. Если их там находится большое количество, а поиск нужно осуществить только в определенных, тогда потребуется указать это при вводе команды find ./folder ./folder1 -type f -name "word", где ./folder ./folder1 — перечень подходящих директорий, а -name «word» — остальные аргументы.

Поиск в нескольких папках при использовании команды find в Linux

Отображение скрытых элементов

Без указания соответствующего аргумента скрытые объекты, находящиеся в сканируемых каталогах, отображаться в консоли не будут. Потому пользователь вручную прописывает дополнительную опцию, чтобы в итоге команда была такой: find ~ -type f -name ".*". Вы получите полный список всех файлов, но если же к некоторым из них нет доступа, перед словом find в строке пропишите sudo, чтобы активировать права суперпользователя.

Отобразить скрытые файлы командой find в Linux

Сканирование домашних папок групп и пользователей

Каждый пользователь может создавать неограниченное количество каталогов и объектов в разных расположениях. Быстрее всего отыскать ту информацию, которая принадлежит одному из юзеров, с помощью команды find и одного из ее аргументов. В «Терминале» пропишите find . -user username, где username — имя пользователя. После ввода сканирование запустится автоматически.

Показать файлы, принадлежащие определенному пользователю командой find в Linux

Примерно такая же схема работает и с группами пользователей. Запуск анализа файлов, связанных с одной из групп, происходит через find /var/www -group groupname. Не забывайте, что объектов может быть большое количество и на вывод их всех иногда уходит много времени.

Показать файлы, принадлежащие определенной групе командой find в Linux

Фильтрация по дате изменений

Операционная система автоматически сохраняет информацию о дате изменения каждого существующего файла. Команда find позволяет найти их все по указанному параметру. Требуется только прописать sudo find / -mtime N, где N — количество дней назад, когда объект был изменен последний раз. Приставка sudo здесь нужна для того, чтобы получить данные и о файлах, предназначенных только для суперпользователя.

Фильтрация по дате изменения при команде find в Linux

Если же вас интересует просмотр элементов, которые последний раз открывались определенное количество дней назад, тогда строка немного меняет свой вид на sudo find / -atime N.

Фильтрация по дате открытия при команде find в Linux

Фильтрация по размеру файлов

Каждый объект имеет свой размер, соответственно, команда для поиска файлов должна обладать функцией, позволяющей фильтровать их по этому параметру. find умеет это делать, юзеру необходимо только задать сам размер через аргумент. Достаточно ввести find / -size N, где N — объем в байтах, мегабайтах (M) или гигабайтах (G).

Фильтрация поиска по размеру с помощью find в Linux

Указать можно и диапазон искомых элементов. Тогда в команду вписываются определители и получится, например, такая строка: find / -size +500M -size -1000M. Такой анализ будет отображать файлы более 500 мегабайтов, но менее 1000.

Установить диапазон объема файлов для поиска через find в Linux

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

Некоторые из файлов или папок бывают пустые. Они просто занимают лишнее пространство на диске и иногда мешают нормально взаимодействовать с компьютером. Их следует найти, чтобы определиться с дальнейшими действиями, а в этом поможет find /folder -type f -empty, где /folder — место, где осуществляется сканирование.

Показать пустые объекты с помощью find в Linux

Отдельно хотелось бы вкратце отметить другие полезные аргументы, которые время от времени становятся полезными для юзера:

Аргументы Описание
-mount Ограничение только на текущую файловую систему
-type f Отображать только файлы
-type d Показывать только директории
-nogroup Поиск файлов, которые не относятся к никакой группе
-nouser Поиск файлов, которые не принадлежат пользователю
-version Узнать версию используемой утилиты

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

Подробнее: Часто используемые команды в «Терминале» Linux

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

Читайте также: Примеры команд grep / cat / ls в Linux

Автор статьи Виктор Бухтеев Вам помогли мои советы?
Получить ответ на Email
Уведомить о

1 Ответ
По рейтингу
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
Аноним
24 октября 2023 22:49

Спасибо! Помог первый совет!

Рекомендуем: