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.