Добавить в корзинуПозвонить
Найти в Дзене

fd: find, который не требует гуглить синтаксис

find - прекрасный инструмент, но синтаксис у него... мягко говоря специфический. Каждый раз, когда нужно найти что-то сложнее find . -name "*.py", приходится лезть в документацию. fd делает то же самое, но с человеческим интерфейсом. Запоминать десятки флагов - это когнитивная нагрузка, которая отвлекает от реальной задачи. ➤ Вариант 1 (Поиск файлов по имени): интуитивно понятно даже для тех, кто не помнит синтаксис регулярных выражений.# Найти все Python-файлы fd .py # Найти все файлы readme (регистронезависимо) fd -i readme # Найти все файлы с расширением .md или .txt fd -e md -e txt ➤ Вариант 2 (Поиск с исключениями): игнорировать нужно чаще, чем искать.# Искать всё, кроме папки tests fd .py --exclude tests # Искать, учитывая .gitignore (по умолчанию включено) fd "config" --hidden # включает поиск в скрытых папках ➤ Вариант 3 (Выполнить команду над найденным): нашел - сделал, без xargs и экранирования.# Найти и удалить все .tmp файлы fd -e tmp -x rm {} # Найти и пока

fd: find, который не требует гуглить синтаксис

find - прекрасный инструмент, но синтаксис у него... мягко говоря специфический. Каждый раз, когда нужно найти что-то сложнее find . -name "*.py", приходится лезть в документацию. fd делает то же самое, но с человеческим интерфейсом.

Запоминать десятки флагов - это когнитивная нагрузка, которая отвлекает от реальной задачи.

➤ Вариант 1 (Поиск файлов по имени): интуитивно понятно даже для тех, кто не помнит синтаксис регулярных выражений.# Найти все Python-файлы

fd .py

# Найти все файлы readme (регистронезависимо)

fd -i readme

# Найти все файлы с расширением .md или .txt

fd -e md -e txt

➤ Вариант 2 (Поиск с исключениями): игнорировать нужно чаще, чем искать.# Искать всё, кроме папки tests

fd .py --exclude tests

# Искать, учитывая .gitignore (по умолчанию включено)

fd "config" --hidden # включает поиск в скрытых папках

➤ Вариант 3 (Выполнить команду над найденным): нашел - сделал, без xargs и экранирования.# Найти и удалить все .tmp файлы

fd -e tmp -x rm {}

# Найти и показать содержимое каждого найденного файла

fd -e md -x bat {} --style=plain

# Найти и выдать размер каждого файла

fd -e log -x du -h {}

fd по умолчанию игнорирует .gitignore, умеет цветной вывод и поддерживает регулярные выражения. Имена файлов, которые часто ищут (`*.py`, *.md, `*.json`), можно не экранировать. А цветная подсветка помогает сразу отличить файлы от папок.

*P.S. fd отлично работает в паре с fzf: fd | fzf - интерактивный выбор файла из всего проекта.*

👉🏻 Я в Telegram - https://dzen.ru/id/686102a27e39653c3429f77f

👉🏻 Я в VK - vk.com/helcode

👉🏻 Я на Boosty - boosty.to/helcode