Fd — лучшая альтернатива команде ‘Find’

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

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

Особенности fd

Некоторые из особенностей fd:

  • Простой в использовании синтаксис — fd *шаблон* вместо find -iname *шаблон*.
  • Красочный вывод — аналогичен выводу команды 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 не занимает много места и является хорошим инструментом в вашем арсенале.

Поделитесь с друзьями

Добавить комментарий

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x