Многие пользователи Linux используют утилиту find
для поиска объектов в файловой системе. Однако, у нее есть большой минус — низкая скорость работы. Если этот недостаток является для Вас критичным, то предлагаем рассмотреть альтернативу find
— утилиту fd-find
.
В этой статье мы расскажем, как использовать инструмент fd-find
в ОС Linux.
Содержание:
Установка fd-find в Linux
Инструмент fd-find
доступен для скачивания из стандартных репозиториев большинства популярных дистрибутивов Linux. Поэтому для его установки достаточно выполнить одну из следующих команд.
Для Debian / Ubuntu:
Для RHEL / CentOS:
Для Fedora:
Использование fd-find в Linux
Утилита fd-find
работает быстрее find
, потому что в своей работе использует механизм, который позволяет ей параллельно обходить каталоги в файловой системе. Она имеет практически такие же опции, что и find
. Вот некоторые из них:
-H
,--hidden
— включает скрытые файлы и каталоги в поиск;-I
,--no-ignore
— игнорирует шаблоны, определенные в файлах.gitignore
,.ignore
и.fdignore
;-t
,--type
— ищет объекты по их типу (например,f
для файлов,d
для каталогов);-e
,--extension
— ищет файлы по их формату;-i
,--case-insensitive
— выполняет поиск, не учитывая регистр букв;-a
,--absolute-path
— отображает результаты с абсолютными путями;-d
,--max-depth
— устанавливает максимальную глубину поиска;-c
,--color
— включает цветное оформление вывода.
Читайте также: 5 команд для поиска файлов в Linux.
Для запуска утилиты fd-find
используется команда fdfind
. По умолчанию она отображает на экране вывод, аналогичный команде ls -R
:
Чтобы просмотреть только первые 10 результатов вывода, используйте конвейер с командой head
:
Поиск файлов по их формату
Одной из самых частых операций с применением команды fdfind
является поиск файлов по их расширению. Для этого используется опция -e
. Допустим, нам нужно найти в каталоге /etc
все файлы в формате *.sh
:
Важно: утилита fd-find
по умолчанию выполняет рекурсивный поиск файлов (процесс поиска файлов внутри каталога и их папок).
Также найдем в текущей директории все файлы с расширением *.conf
, которые имеют в названии строку small
:
Читайте также: Курс LFCS — часть 3: архивирование, поиск и настройка атрибутов файлов.
Поиск файлов в конкретной папке
Если Вы хотите осуществить поиск в какой-то определенной директории, укажите путь к ней в качестве аргумента команды fdfind
:
Для примера найдем в каталоге brltty/Input/
все файлы и папки, которые имеют в названии строку txt
:
Исключение файлов из поиска
Функционал утилиты fd-find
позволяет исключать некоторые файлы из поиска. Для выполнения этой задачи используется параметр -E
. Допустим, нам нужно найти в текущем каталоге все файлы с расширением *.conf
, в названии которых содержится слово small
, но которые не находятся в папке conf.d
:
Выполнение операций с файлами после поиска
Так же как и find
, инструмент fd-find
позволяет находить файлы, а затем выполнять с ними определенные операции. Для этого применяется опция -x
(или --exec
).
Для примера найдем файлы с расширением *.jpg
и изменим права доступа к ним с помощью утилиты chmod
:
Читайте также: Как установить права доступа (chmod) отдельно для папки / файла и всех ее подпапок / подфайлов в терминале.
Важно: в этой команде есть заполнитель {}
. Он автоматически будет заменен названиями файлов, найденных командой fdfind
.
Выводы
Мы показали, как выполнять поиск файлов в Linux с помощью утилиты fd-find
. Процесс работы этой команды занимает намного меньше времени, чем при использовании утилиты find
. Надеемся, что эта статья была полезной для Вас!
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.