fd - быстрый и удобный поиск файлов без головной боли
Знакомая ситуация: нужно найти файл где-то в глубинах файловой системы, а команда find с её сложными опциями вызывает желание просто открыть графический файловый менеджер? Тогда вам точно стоит познакомиться с fd — современной альтернативой, которая делает поиск файлов простым и приятным.
Почему fd, а не find?
fd — это инструмент командной строки, написанный на Rust, который предлагает:
- Простой синтаксис — вместо
find -iname '*pattern*'просто пишемfd pattern - Умное определение регистра — автоматически переключается между регистронезависимым и регистрозависимым поиском
- Цветной вывод как у
ls— сразу видно, что перед вами: файл, директория или симлинк - Игнорирование .gitignore по умолчанию — не находит временные и служебные файлы
- Параллельный поиск — работает в разы быстрее стандартного
find
Основные возможности
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.
Проект активно развивается, имеет открытый исходный код и поддерживается на всех основных платформах. А главное — он действительно делает работу с файловой системой приятнее!
