fd - быстрый и удобный поиск файлов без головной боли

21 июл 2025
44,601
1,149
154
2 недели

Знакомая ситуация: нужно найти файл где-то в глубинах файловой системы, а команда find с её сложными опциями вызывает желание просто открыть графический файловый менеджер? Тогда вам точно стоит познакомиться с fd — современной альтернативой, которая делает поиск файлов простым и приятным.

Почему fd, а не find?

fd — это инструмент командной строки, написанный на Rust, который предлагает:

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

Демонстрация работы fd

Основные возможности

1. Простой поиск

Достаточно указать шаблон — fd рекурсивно найдёт все совпадения в текущей директории:

fd netfl
# Вывод: Software/python/imdb-ratings/netflix-details.py

2. Регулярные выражения

По умолчанию fd использует regex-поиск:

Реклама
cd /etc
fd '^x.*rc$'
# Вывод: 
# X11/xinit/xinitrc
# X11/xinit/xserverrc

3. Фильтрация по расширению

Ищем все .md файлы в проекте:

fd -e md
# Вывод:
# CONTRIBUTING.md
# README.md

4. Параллельное выполнение команд

Можно сразу выполнять действия с найденными файлами:

# Распаковать все zip-архивы
fd -e zip -x unzip

# Отформатировать код:
fd -e h -e cpp -x clang-format -i

5. Игнорирование скрытых файлов

По умолчанию fd не ищет в скрытых директориях и не показывает .gitignore-файлы. Это можно изменить флагами:

fd -H  # искать скрытые файлы
fd -I  # игнорировать .gitignore

Производительность

По тестам авторов, fd работает в 23 раза быстрее find -iregex и в 13 раз быстрее find -iname при поиске файлов вида [0-9].jpg в директории с 4 миллионами файлов.

Установка

Для большинства Linux-дистрибутивов есть готовые пакеты:

# Ubuntu/Debian
apt install fd-find

# Arch Linux
pacman -S fd

# Fedora
dnf install fd-find

Также можно установить через cargo:

cargo install fd-find

Когда особенно пригодится

  • При работе с большими проектами, где важна скорость поиска
  • Если устали запоминать сложные опции find
  • Когда нужно быстро найти и обработать группу файлов
  • Для интеграции с другими инструментами (fzf, rofi, emacs)

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

Проект активно развивается, имеет открытый исходный код и поддерживается на всех основных платформах. А главное — он действительно делает работу с файловой системой приятнее!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.