Wyszukiwanie w witrynie

fd — prosta i szybka alternatywa dla polecenia Znajdź


Większość użytkowników Linuksa dobrze zna polecenie find i wiele przypadków, w których można go użyć. Dzisiaj przyjrzymy się alternatywnemu poleceniu find, zwanemu fd.

fd to proste, szybkie i przyjazne dla użytkownika narzędzie, które ma po prostu działać szybciej w porównaniu do narzędzia find. Nie ma na celu całkowitego zastąpienia funkcji find, ale raczej zapewnienie łatwej w użyciu alternatywy, która działa nieco szybciej.

Funkcje fd

Niektóre z godnych uwagi funkcji fd:

  • Łatwa w użyciu składnia – fd *pattern* zamiast find -iname *pattern*.
  • Kolorowe wyjście jest podobne do polecenia ls.
  • Szybka wydajność. Benchmarki programisty dostępne są tutaj.
  • Inteligentne wyszukiwanie z domyślnym rozróżnianiem wielkości liter i przełączaniem na uwzględnianie wielkości liter, jeśli wzorzec zawiera wielkie litery.
  • Domyślnie nie szuka ukrytych plików i katalogów.
  • Domyślnie nie przegląda .gitignore.
  • Świadomość Unicode.

Jak zainstalować fd w systemie Linux

Przyjrzymy się, jak zainstalować fd w różnych dystrybucjach Linuksa przy użyciu domyślnego menedżera pakietów, jak pokazano.

sudo apt install fd-find    [On Debian, Ubuntu and Mint]
sudo yum install fd-find    [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/fd  [On Gentoo Linux]
sudo pacman -S fd           [On Arch Linux]
sudo zypper install fd      [On OpenSUSE]  
sudo apk add fd             [On Alpine Linux]    

Jak korzystać z fd w systemie Linux

Podobnie jak polecenie find, polecenie fd ma wiele zastosowań, ale zacznijmy od sprawdzenia dostępnych opcji:

fd -h
OR
fd --help

Rzućmy okiem na kilka przykładów. Możesz uruchomić fd bez żadnych argumentów, wynik jest bardzo podobny do polecenia ls -R.

fd

W kolejnych przykładach fd użyję domyślnej instalacji WordPressa zlokalizowanej w /var/www/html/ do wyszukiwania różnych plików i folderów.

W poniższym przykładzie wydrukowałem tylko pierwszych 10 wyników dla krótszego wyjścia, używając przekierowania potoku za pomocą polecenia head.

fd | head

Znajdź wszystkie pliki JPG w systemie Linux

Załóżmy, że chcemy znaleźć wszystkie pliki jpg. Możemy użyć flagi „-e ” do filtrowania według rozszerzenia pliku:

fd -e jpg

Jeśli chcesz określić katalog wyszukiwania, wystarczy podać go jako argument:

fd <pattery> <directory>

Wyszukaj ciąg we wszystkich plikach PHP w systemie Linux

Flagi „-e ” można używać w połączeniu ze wzorcem, jak pokazano:

fd -e php index

Powyższe polecenie wyszuka pliki z rozszerzeniem .php i będzie zawierać w nich ciąg „index”:

Jeśli chcesz wykluczyć niektóre wyniki, możesz użyć flagi „-E ”, jak pokazano:

fd -e php index -E wp-content

To polecenie wyszuka wszystkie pliki z rozszerzeniem php, zawierające ciąg „index” i wykluczy wyniki z katalogu „wp-content”.

Znajdź wszystkie pliki JPG i zmodyfikuj uprawnienia

Podobnie jak find, możesz użyć argumentów -x lub --exec, aby wykonać polecenie równolegle z wynikami wyszukiwania.

Oto przykład, w którym użyjemy chmod do zmiany uprawnień plików obrazów

fd -e jpg -x chmod 644 {}

Powyższe znajdzie wszystkie pliki z rozszerzeniem jpg i uruchomi chmod 644 .

Oto kilka przydatnych wyjaśnień i zastosowań nawiasów:

  • {} – Symbol zastępczy, który zostanie zmieniony wraz ze ścieżką wyniku wyszukiwania (wp-content/uploads/01.jpg).
  • {.} – podobny do {}, ale bez użycia rozszerzenia pliku (wp-content/uploads/01).
  • {/}: symbol zastępczy, który zostanie zastąpiony nazwą bazową wyniku wyszukiwania (01.jpg).
  • {//}: katalog nadrzędny odkrytej ścieżki (wp-content/uploads).
  • {/.: tylko nazwa podstawowa, bez rozszerzenia (01).
Wniosek

To był krótki przegląd polecenie fd, które dla niektórych użytkowników może być łatwiejsze i szybsze w użyciu. Jak wspomniano wcześniej w tym artykule, fd nie ma całkowicie zastąpić find, ale raczej zapewnić proste użycie, łatwiejsze wyszukiwanie i lepszą wydajność. Fd nie zajmuje dużo miejsca i jest fajnym narzędziem, które warto mieć w swoim arsenale.