Jak korzystać z polecenia fd w systemie Linux

Opublikowany: 2022-01-29
Okno terminala na komputerze z systemem Linux z pulpitem w stylu Ubuntu.
Fatmawati Achmad Zaenuri/Shutterstock

W systemie Linux fd jest łatwiejszą alternatywą dla polecenia find . Ma uproszczoną składnię, używa rozsądnych wartości domyślnych i ma wbudowane zdroworozsądkowe zachowanie. Zróbmy to przez jego kroki.

fd kontra find: jaka jest różnica?

Polecenie fd nie ma na celu zastąpienia tradycyjnego polecenia find , które było w Linuksie, no cóż, od zawsze. Zamiast tego fd próbuje zaspokoić większość typowych zastosowań find w prostszy sposób — i często jest to osiem lub dziewięć razy szybsze niż find . Możesz zobaczyć niektóre z jego testów porównawczych na stronie repozytorium GitHub projektu.

10 podstawowych poleceń systemu Linux dla początkujących
POWIĄZANE 10 podstawowych poleceń systemu Linux dla początkujących

fd ma pokolorowane wyjście, podobne do niektórych trybów ls . Jest rekurencyjny, ale domyślnie nie przeszukuje ukrytych katalogów. Wie o Git i automatycznie ignoruje wszelkie wzorce w twoim pliku „.gitignore”.

fd domyślnie nie uwzględnia wielkości liter. Jeśli jednak wzorzec wyszukiwania zawiera wielką literę, fd działa w trybie rozróżniania wielkości liter. Oczywiście możesz zastąpić wartości domyślne, ale w wielu przypadkach działają one na Twoją korzyść.

POWIĄZANE: Jak korzystać ze wszystkich poleceń wyszukiwania systemu Linux

Instalowanie fd

Od Ubuntu 19.04 (Disco Dingo) możesz zainstalować fd bezpośrednio, wywołując oficjalnie utrzymywany pakiet za pomocą apt-get . Jeśli używasz starszej wersji Ubuntu, sprawdź instrukcje instalacji na stronie Centrum Git.

Wpisz następujące polecenie:

 sudo apt-get zainstaluj fd-find 

Reklama

W Ubuntu polecenie to fdfind , aby uniknąć kolizji nazw z innym istniejącym narzędziem. Jeśli chcesz, aby był to fd , możesz ustawić alias:

 alias fd=fdfind 

Aby alias był trwały, aby pozostał dostępny po ponownym uruchomieniu, umieść go w pliku „.bashrc” lub „.bash_aliases”.

POWIĄZANE: Jak tworzyć aliasy i funkcje powłoki w systemie Linux

Aby zainstalować fd w Fedorze, wpisz to polecenie:

 sudo dfn zainstaluj fd-find 

Na Manjaro wpisz:

 sudo pacman - syu fd 

fd kontra fdfind

Aby uniknąć nieporozumień, zostawiliśmy polecenie z jego domyślną nazwą, fdfind , na naszym testowym komputerze Ubuntu. fd i fdfind to dokładnie to samo polecenie, co zobaczysz w poniższym przykładzie (jeśli poprosisz fdfind o pokazanie swojej wersji, nazywa się „fd”):

 fdfind --wersja 

Nazwiemy polecenie „fed”, ale w przykładach użyjemy Ubuntu „fdfind”. W innych dystrybucjach Linuksa możesz wpisać „fd” zamiast „fdfind”, aby zapisać kilka naciśnięć klawiszy.

Proste wyszukiwania z fd

Jeśli używasz fd bez opcji wiersza poleceń, zachowuje się trochę jak ls , z wyjątkiem tego, że domyślnie wyświetla pliki w podkatalogach.

Wpisz następujące polecenie:

 znaleźć 

Dane wyjściowe są wyświetlane w różnych kolorach dla różnych typów plików i katalogów.

Reklama

Aby zobaczyć pliki określonego typu, użyj opcji -e (rozszerzenie). Pamiętaj, że nie musisz poprzedzać rozszerzenia kropką (.), ani wielkość liter nie jest rozróżniana.

Na przykład możesz wpisać:

 fdfind -e png 

Teraz jedyne wymienione pliki to pliki obrazów PNG.

Aby wyszukać pojedynczy plik, wpisz jego nazwę w wierszu poleceń, na przykład:

 fdfind index.page 

Plik został znaleziony i znajduje się w podkatalogu. Nie musieliśmy fd wyszukiwania rekurencyjnego.

Aby wyszukiwanie rozpoczęło się w określonym katalogu, dołącz ścieżkę do pliku w wierszu poleceń. Następujące polecenie rozpocznie wyszukiwanie w katalogu „/ etc” i wyszuka pliki zawierające „passwd” w nazwie pliku:

 fdfind passwd /etc 

Tutaj szukamy wszystkich plików kodu źródłowego C, które zawierają słowo „coord” w nazwie pliku:

 fdfind -ec coord 

Znaleziono dwa pasujące pliki.

fd i Git

Git to niezwykle popularny system kontroli wersji kodu źródłowego. Jeśli używasz Git na swoim komputerze, prawdopodobnie używasz plików „.gitignore”, aby poinformować Git, którymi plikami powinien się zajmować, a które może zignorować. Domyślnie fd respektuje ustawienia w plikach „.gitignore”.

Reklama

W tym katalogu mamy repozytorium Git i plik „.gitignore”. Wpisujemy:

 ls -adl .git* 

fd o wyświetlenie wszystkich plików, które zawierają słowo „coord” w nazwie pliku. Następnie powtórzymy wyszukiwanie i użyjemy opcji -I (bez ignorowania). To mówi fd , aby zignorował ustawienia w pliku „.gitignore” i zgłosił każdy pasujący plik.

Aby to wszystko zrobić, wpisujemy:

 znajdź współrzędne
 znajdź coord -I 

Dwa dodatkowe pliki w drugim zestawie wyników to pliki obiektowe. Są one tworzone podczas kompilacji programu plikowego. Są one następnie używane przez linker do stworzenia ostatecznej wersji wykonywalnej programu.

Pliki obiektowe są zazwyczaj ignorowane przez programy do kontroli wersji kodu źródłowego. Są one regenerowane za każdym razem, gdy kompilujesz swój program, więc nie musisz przechowywać ich kopii. W pliku „.gitignore” znajduje się wpis, który nakazuje Gitowi ignorowanie plików obiektów, a domyślnie fd również je ignoruje.

Opcja -I (bez ignorowania) wymusza na fd zwrócenie wszystkiego, co znajdzie, zamiast kierować się plikiem „.gitginore”.

Typy plików i wielkość liter

Możesz poprosić fd o wyszukanie katalogów, plików (w tym tych, które są wykonywalne i puste) oraz dowiązań symbolicznych. Możesz to zrobić, używając opcji -t (typ), po której następuje jedna z poniższych liter:

  • f : Plik.
  • d : Katalog.
  • l : Dowiązanie symboliczne.
  • x : plik wykonywalny.
  • e : Pusty plik.

Poniżej znajduje się katalog o nazwie images:

 fdfind -td obrazy 

Reklama

Znaleziono dopasowanie, jeden podkatalog niższy od bieżącego.

Zobaczmy, jak rozróżnianie wielkości liter działa z wzorcami wyszukiwania. Wpisujemy następujące polecenie, aby najpierw wyszukać pliki zawierające „geo” w nazwach plików, a następnie te, które zawierają „Geo” w nazwach plików:

 fdfind -tf geo
 fdfind -tf Geo 

W pierwszym poleceniu użyliśmy wzorca wyszukiwania małymi literami, co spowodowało, że fd działał bez uwzględniania wielkości liter. Oznacza to, że zarówno „Geo”, jak i „geo” są prawidłowymi dopasowaniami.

Nasze drugie polecenie zawierało wielką literę, co powodowało, że fd działał z rozróżnianiem wielkości liter. Oznacza to, że tylko „Geo” jest prawidłowym dopasowaniem.

Wykonanie polecenia

Polecenie fd umożliwia uruchomienie innego polecenia i wykonanie go na każdym z znalezionych plików.

Powiedzmy, że wiemy, że gdzieś w naszym drzewie katalogowym kodu źródłowego znajduje się plik Zip. Możemy go wyszukać za pomocą następującego polecenia, które wyszukuje pliki z rozszerzeniem ZIP:

 fdfinf -e zip 

Reklama

Za pomocą opcji -x (exec) możesz przekazać każdy znaleziony plik do innego polecenia w celu jego przetworzenia. Na przykład możemy wpisać następujące polecenie, aby wywołać narzędzie unzip, które rozpakuje nasz plik ZIP ("{}" to symbol zastępczy reprezentujący znaleziony plik):

 fdfind -e zip -x unzip {}

Spowoduje to rozpakowanie pliku w bieżącym katalogu roboczym. Jeśli chcemy, aby był rozpakowany w katalogu zawierającym plik ZIP, możemy użyć jednego z poniższych symboli zastępczych:

  • {} : pełna ścieżka do pliku i nazwa znalezionego pliku.
  • {/} : nazwa znalezionego pliku.
  • {//} : Katalog zawierający znaleziony plik.
  • {/.} : Nazwa znalezionego pliku bez rozszerzenia.

Aby nasz plik ZIP został znaleziony i rozpakowany w katalogu, który go zawiera, możemy użyć opcji unzip -d (katalog) i przekazać symbol zastępczy katalogu nadrzędnego ( {//} ):

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

Plik ZIP jest następnie zlokalizowany i rozpakowany w swoim katalogu nadrzędnym.

Twój Go-to Znajdź?

Ponieważ z taką prostotą obejmuje najpopularniejsze zastosowania, fd może łatwo stać się Twoim poleceniem „znajdź”. Gdy potrzebujesz bardziej zaawansowanych funkcji, zawsze możesz wrócić do tego doświadczonego weterana, find .

POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów