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

Окно терминала на ПК с Linux с рабочим столом в стиле Ubuntu.

Фатмавати Ахмад Дзэнури / Shutterstock



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

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

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





10 основных команд Linux для начинающих СВЯЗАННЫЙ 10 основных команд Linux для начинающих

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

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



СВЯЗАННЫЙ: Как использовать все поисковые команды Linux

Установка fd

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

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



fdfind

Реклама

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

fdfind

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

СВЯЗАННЫЙ: Как создавать псевдонимы и функции оболочки в Linux

Чтобы установить fd в Fedora введите эту команду:

fdfind

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

fdfind

fd против fdfind

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

fd

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

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

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

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

fd

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

Реклама

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

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

-I

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

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

fd

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

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

-t

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

fd

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

fd и Git

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

Реклама

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

fd

Спросим -x для перечисления любых файлов, которые содержат координаты в имени файла. Затем мы повторим поиск и воспользуемся -d (без игнорирования) вариант. Это сообщает {//} игнорировать настройки в файле .gitignore и сообщать обо всех совпадающих файлах.

Для всего этого набираем следующее:

fd find

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

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

sudo apt-get install fd-find
их тоже игнорирует.

alias fd=fdfind
(без игнорирования) опция принудительно
sudo dfn install fd-find
чтобы вернуть все, что он нашел, а не руководствоваться файлом .gitginore.

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

Вы можете спросить

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

    ж: Файл. d: Справочник. L: Символическая ссылка. Икс: Запускаемый файл. И: Пустой файл.

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

fdfind

Реклама

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

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

fdfind -e png
fdfind index.page

В первой команде мы использовали шаблон поиска в нижнем регистре, что привело к

fdfind passwd /etc
работать без учета регистра. Это означает, что и Geo, и geo являются допустимыми совпадениями.

Наша вторая команда содержала символ верхнего регистра, что приводило к

fdfind -e c coord
действовать с учетом регистра. Это означает, что допустимым совпадением является только географическое положение.

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

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

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

fdfind coord

Реклама

С помощью

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

fdfind -td images

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

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

Чтобы наш ZIP-файл был найден и разархивирован в каталоге, который его содержит, мы можем использовать unzip

fdfind -tf geo
(каталог) и передать заполнитель родительского каталога (
fdfind -tf Geo
):

fdfinf -e zip

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

Ваша находка?

Поскольку он с такой простотой охватывает наиболее распространенные применения,

fdfind -e zip -x unzip {}
может легко стать вашей командой поиска. Когда вам понадобятся его более продвинутые функции, вы всегда можете вернуться к закаленному ветерану
fdfind -e zip -x unzip {} -d {//}
.

Команды Linux
Файлы деготь · pv · Кот · такс · chmod · рукоятка · разница · sed · С участием · человек · толкать · popd · fsck · тестовый диск · seq · fd · пандок · компакт диск · $ ПУТЬ · awk · присоединиться · jq · складывать · уникальный · journalctl · хвостик · государство · ls · fstab · выбросил · меньше · chgrp · Chown · rev · Посмотрите · струны · тип · переименовать · застегивать · распаковать · устанавливать · размонтировать · установить · fdisk · mkfs · rm · rmdir · rsync · df · gpg · мы · нано · mkdir · от · пер · пластырь · конвертировать · rclone · крошить · SRM
Процессы псевдоним · экран · верхняя · Ницца · Ренис · прогресс · Strace · система · tmux · чш · история · в · партия · бесплатно · который · dmesg · usermod · пс · chroot · xargs · tty · мизинец · lsof · vmstat · тайм-аут · стена · да · убийство · спать · судо · его · время · groupadd · usermod · группы · lshw · неисправность · перезагружать · останавливаться · выключение · пароль · lscpu · crontab · Дата · bg · фг
Сети netstat · пинг · трассировка · ip · SS · кто · fail2ban · бмон · ты · Палец · nmap · ftp · завиток · wget · ВОЗ · кто я · В · iptables · ssh-keygen · ufw

СВЯЗАННЫЙ: Лучшие ноутбуки с Linux для разработчиков и энтузиастов

ПРОЧИТАЙТЕ СЛЕДУЮЩИЙ
  • & rsaquo; Функции и формулы в Microsoft Excel: в чем разница?
  • & rsaquo; Киберпонедельник 2021: лучшие технические предложения
  • & rsaquo; 5 сайтов, которые каждый пользователь Linux должен добавить в закладки
  • & rsaquo; Папке на компьютере 40 лет: как звезда Xerox создала рабочий стол
  • & rsaquo; Как найти упакованный Spotify 2021
  • & rsaquo; Что такое защита от падений MIL-SPEC?
Фотография профиля Дэйва Маккея Дэйв Маккей
Дэйв Маккей впервые использовал компьютеры, когда в моде была перфолента, и с тех пор он занимается программированием. Проработав более 30 лет в ИТ-индустрии, он теперь работает журналистом в области информационных технологий. За свою карьеру он работал программистом-фрилансером, менеджером международной группы разработчиков программного обеспечения, менеджером проекта ИТ-услуг, а в последнее время - специалистом по защите данных. Его статьи были опубликованы на сайтах howtogeek.com, cloudsavvyit.com, itenterpriser.com и opensource.com. Дэйв - евангелист Linux и сторонник открытого исходного кода.
Прочитать полную биографию

Интересные статьи