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

Якщо ви хочете виключити деякі результати, ви можете використовувати прапор “-E”, як показано на малюнку:

Пошук усіх файлів 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 не займає багато місця і є хорошим інструментом у вашому арсеналі.

Поділіться своєю знахідкою
Підписатися
Сповістити про
guest

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