Как использовать команду fd в Linux

Гайд в разделе Linux "Как использовать команду fd в Linux" содержит информацию, советы и подсказки, которые помогут изучить самые важные моменты и тонкости вопроса….

A terminal window on a Linux PC with an Ubuntu-style desktop. Фатмавати Ахмад Зэнури / Shutterstock

В Linux fd – более простая альтернатива команде find. Он имеет упрощенный синтаксис, использует разумные значения по умолчанию и имеет встроенное поведение, основанное на здравом смысле. Давайте рассмотрим его шаги.

fd против find: в чем разница?

Команда fd не предназначена для замены традиционной команды find, которая всегда была в Linux. Вместо этого fd пытается удовлетворить большинство распространенных применений find более простым способом – и часто это в восемь или девять раз быстрее, чем find. Вы можете увидеть некоторые из его тестов на странице репозитория GitHub проекта.

fd имеет цветной вывод, аналогичный тому, что есть в некоторых режимах ls. Он рекурсивный, но по умолчанию не выполняет поиск в скрытых каталогах. Он знает о Git и также автоматически игнорирует любые шаблоны в вашем файле «.gitignore».

fd по умолчанию нечувствителен к регистру. Однако, если ваш шаблон поиска содержит заглавную букву, fd работает в режиме с учетом регистра. Конечно, вы можете изменить значения по умолчанию, но во многих случаях они работают в вашу пользу.

Установка fd

Начиная с Ubuntu 19.04 (Disco Dingo,), вы можете установить fd напрямую, вызвав официально поддерживаемый пакет с помощью apt -получить. Если вы используете более старую версию Ubuntu, ознакомьтесь с инструкциями по установке на странице центра Git.

Введите следующее:

sudo apt-get install fd-find

В Ubuntu используется команда fdfind, чтобы избежать конфликта имен с другими существующая утилита. Если вы хотите, чтобы это был fd, вы можете настроить псевдоним:

alias fd = fdfind

Чтобы сделать псевдоним постоянным, чтобы он оставался доступным после перезагрузки, поместите его в свой файл «.bashrc» или «.bash_aliases».

Чтобы установить fd в Fedora, введите следующую команду:

sudo dfn install fd-find

В Manjaro введите следующее:

sudo pacman -Syu fd

fd по сравнению с fdfind

Чтобы избежать путаницы, мы оставили команду с именем по умолчанию, fdfind, на нашем тестовом ПК с Ubuntu.fd и fdfind – это одна и та же команда, как вы увидите в следующем примере (если вы попросите fdfind показать свою версию, она называет себя «fd»):

fdfind –version

Мы назовем команду «fed», но в примерах мы будем использовать Ubuntu «fdfind». В других дистрибутивах Linux вы можете набрать «fd» вместо «fdfind», чтобы сэкономить несколько нажатий клавиш.

Простой поиск с помощью fd

Если вы используете fd без параметров командной строки, он ведет себя немного как ls, за исключением того, что по умолчанию перечисляет файлы в подкаталогах.

Введите следующее:

fdfind

Вывод отображается в разных цветах для разных типов файлов и каталогов.

Для просмотра файлов определенного типа используйте параметр -e (расширение). Обратите внимание, что перед расширением не обязательно ставить точку (.) И регистр не учитывается.

Например, вы можете ввести следующее:

fdfind -e png

Теперь в списке перечислены только файлы изображений PNG.

Чтобы найти отдельный файл, введите его имя в командной строке, например:

fdfind index.page

Файл найден и находится в подкаталоге. Нам не нужно было указывать fd для рекурсивного поиска.

Чтобы поиск запускался в определенном каталоге, укажите путь к файлу в командной строке. Следующая команда начнет поиск в каталоге «/ etc» и поиск файлов, содержащих «passwd» в имени файла:

fdfind passwd / etc

Здесь мы ищем все файлы исходного кода C, которые содержат «координату» в имени файла:

fdfind -ec corre

Были найдены два совпадающих файла .

fd и Git

Git – чрезвычайно популярная система контроля версий исходного кода. Если вы используете Git на своем компьютере, вы, вероятно, используете файлы «.gitignore», чтобы сообщить Git, какие файлы ему следует обрабатывать, а какие можно игнорировать. По умолчанию fd соблюдает настройки в ваших файлах «.gitignore».

В этом каталоге у нас есть репозиторий Git и файл «.gitignore». Набираем следующее:

ls -adl.git *

Давайте попросим fd перечислить все файлы, которые содержат «координату» в имени файла. Затем мы повторим поиск и воспользуемся параметром -I (без игнорирования). Это указывает fd игнорировать настройки в файле «.gitignore» и сообщать обо всех совпадающих файлах.

Чтобы сделать все это, мы набираем следующее:

fdfind Coord-Fdfind-I

Два дополнительных файла во втором наборе результатов являются объектными. Они создаются при компиляции файловой программы. Затем они используются компоновщиком для создания окончательной исполняемой версии программы.

Объектные файлы обычно игнорируются программами контроля версий исходного кода. Они восстанавливаются каждый раз, когда вы компилируете свою программу, поэтому вам не нужно хранить их копии. В файле .gitignore есть запись, которая инструктирует Git игнорировать объектные файлы, и, по умолчанию, fd игнорирует и их.

Параметр -I (без игнорирования) заставляет fd возвращать все, что он находит, вместо того, чтобы руководствоваться файлом «.gitginore».

Типы файлов и чувствительность к регистру

Вы можете попросить fd указать ищите каталоги, файлы (включая исполняемые и пустые) и символические ссылки. Вы можете сделать это, используя параметр -t (тип), за которым следует одна из следующих букв:

  • f: File.
  • d: Directory.
  • l: символическая ссылка.
  • x: исполняемый файл.
  • e: пустой файл.

Следующее ищет каталог с именем images:

fdfind -td images

Соответствие найдено, на один подкаталог ниже чем текущий.

Давайте посмотрим, как чувствительность к регистру работает с шаблонами поиска. Мы вводим следующее, чтобы сначала найти файлы, содержащие «гео» в именах файлов, а затем те, которые содержат «гео» в своих именах:

fdfind -tf geo fdfind -tf Geo

В первой команде мы использовали шаблон поиска в нижнем регистре, что заставляло fd работать без учета регистра. Это означает, что и «Geo», и «geo» являются допустимыми совпадениями.

Наша вторая команда содержала символ верхнего регистра, что заставляло fd работать с учетом регистра. Это означает, что только «Geo» является допустимым совпадением.

Выполнение команды

Команда fd позволяет вам запустить другую команду и выполнить ее для каждого из найденных файлов.

Допустим, мы знаем, что существует Zip-файл где-нибудь в дереве каталогов исходного кода. Мы можем найти его, используя следующую команду, которая ищет файлы с расширением ZIP:

fdfinf -e zip

С параметром -x (exec), вы можете передать каждый найденный файл другой команде для обработки. Например, мы можем ввести следующее, чтобы вызвать утилиту unzip для распаковки нашего ZIP-файла («{}» – это заполнитель, представляющий найденный файл):

fdfind -e zip -x unzip {}

Это будет разархивируйте файл в текущем рабочем каталоге. Если мы хотим, чтобы он был распакован в каталог, содержащий ZIP-файл, мы можем использовать один из следующих заполнителей:

  • {}: полный путь к файлу и имя найденного файла.
  • {/}: имя найденного файла.
  • {//}: каталог, содержащий найденный файл.
  • {/.}: имя найденного файла без расширения.

Чтобы наш ZIP-файл был найден и распакован в каталоге, который его содержит, мы можем использовать параметр unzip -d (directory) и передать заполнитель родительского каталога ({//}):

fdfind -e zip -x unzip {} -d {//}

Затем ZIP-файл находится и распаковывается в его родительском каталоге.

Ваша любимая находка?

Так как fd с такой простотой охватывает наиболее распространенные варианты использования, он может легко стать вашей командой «найти». Когда вам понадобятся его более продвинутые функции, вы всегда можете вернуться к этому опытному ветерану, найдите.

Как использовать команду fd в Linux
Теги:
Linux Гайды

Для получения большей информации о секретах и подсказках по разделу Linux легко перейдите в гайды Linux по указанной выше ссылке.

0 05.02.2021 Антон
<>

Напишите несколько строк :

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены значком *

*
*