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

fd — простая и быстрая альтернатива команде поиска


Большинство пользователей Linux хорошо знакомы с командой find и многими случаями ее использования. Сегодня мы рассмотрим альтернативу команде find, которая называется fd.

fd – это простой, быстрый и удобный инструмент, который работает быстрее по сравнению с find. Он не предназначен для полной замены find , а скорее представляет собой простую в использовании альтернативу, которая работает немного быстрее.

Особенности ФД

Некоторые из примечательных особенностей fd:

  • Простой в использовании синтаксис – fd *pattern* вместо find -iname *pattern*.
  • Цветной вывод аналогичен выводу команды ls.
  • Быстрая производительность. Тесты разработчика доступны здесь.
  • Интеллектуальный поиск с учетом регистра по умолчанию и переключением на регистрозависимый, если шаблон содержит символ в верхнем регистре.
  • По умолчанию не ищет скрытые файлы и каталоги.
  • По умолчанию не просматривается .gitignore.
  • Осведомленность о Юникоде.

Как установить fd в Linux

Мы рассмотрим, как установить fd в различных дистрибутивах Linux, используя менеджер пакетов по умолчанию, как показано ниже.

sudo apt install fd-find    [On Debian, Ubuntu and Mint]
sudo yum install fd-find    [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/fd  [On Gentoo Linux]
sudo pacman -S fd           [On Arch Linux]
sudo zypper install fd      [On OpenSUSE]  
sudo apk add fd             [On Alpine Linux]    

Как использовать fd в Linux

Подобно команде find, fd имеет множество вариантов использования, но давайте начнём с проверки доступных опций:

fd -h
OR
fd --help

Давайте посмотрим на несколько примеров. Вы можете запустить fd без каких-либо аргументов, результат очень похож на команду ls -R.

fd

В следующих примерах fd я буду использовать установку WordPress по умолчанию, расположенную в /var/www/html/, для поиска различных файлов и папок.

В приведенном ниже примере я напечатал только первые 10 результатов для более короткого вывода, используя перенаправление канала с помощью команды head.

fd | head

Найти все файлы JPG в Linux

Допустим, мы хотим найти все файлы jpg. Мы можем использовать флаг “-e ” для фильтрации по расширению файла:

fd -e jpg

Если вы хотите указать каталог поиска, вам просто нужно указать его в качестве аргумента:

fd <pattery> <directory>

Поиск строки во всех файлах PHP в Linux

Флаг “-e ” можно использовать в сочетании с шаблоном, как показано:

fd -e php index

Приведенная выше команда будет искать файлы с расширением .php и содержать в них строку «index»:

Если вы хотите исключить некоторые результаты, вы можете использовать флаг “-E”, как показано:

fd -e php index -E wp-content

Эта команда будет искать все файлы с расширением php, содержащие строку «index», и исключит результаты из каталога «wp-content».

Найдите все файлы JPG и измените разрешение.

Так же, как и find, вы можете использовать аргументы -x или --exec для параллельного выполнения команд с результатами поиска.

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

fd -e jpg -x chmod 644 {}

Приведенный выше пример найдет все файлы с расширением jpg и запустит chmod 644 .

Вот несколько полезных объяснений и использования скобок:

  • {} – заполнитель, который будет изменен вместе с путем к результату поиска (wp-content/uploads/01.jpg).
  • {.} — аналогично {}, но без использования расширения файла (wp-content/uploads/01).
  • : заполнитель, который будет заменен базовым именем результата поиска (01.jpg).
  • {//: родительский каталог обнаруженного пути (wp-content/uploads).
  • {/.: только базовое имя без расширения (01).
Заключение

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