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 не занимает много места и является хорошим инструментом в вашем арсенале.