Jak korzystać z polecenia fd w systemie Linux
Opublikowany: 2022-01-29 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.
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
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.
Aby zobaczyć pliki określonego typu, użyj opcji
(rozszerzenie). Pamiętaj, że nie musisz poprzedzać rozszerzenia kropką (.), ani wielkość liter nie jest rozróżniana.-e
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”.
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
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
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
.
Polecenia Linuksa | ||
Pliki | tar · pv · kot · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · dysk testowy · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · ogon · stat · ls · fstab · echo · mniej · chgrp · chown · rev · wygląd · stringi · typ · zmiana nazwy · zip · rozpakuj · montuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konwertuj · rclone · shred · srm | |
Procesy | alias · ekran · top · ładne · renice · postęp · strace · systemd · tmux · chsh · historia · w · wsad · free · co · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · ściana · tak · kill · sen · sudo · su · czas · groupadd · usermod · grupy · lshw · zamknij · restart · halt · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Sieć | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów