Sposoby wykorzystania polecenia „znajdź” do efektywniejszego przeszukiwania katalogów
Ten samouczek przeprowadzi Cię przez różne sposoby znajdowania katalogu w systemie Linux. Jak być może już wiesz, w Linuksie wszystko jest plikiem, łącznie z katalogami. Jedną z typowych czynności, które użytkownik Linuksa wykonuje w wierszu poleceń, jest wyszukiwanie pliku lub katalogu.
Istnieje kilka różnych sposobów i narzędzi używanych do wyszukiwania plików w wierszu poleceń, takich jak find, locate i które. Jednak ostatnie narzędzie (które) służy tylko do lokalizowania polecenia.
W ramach tego samouczka skupimy się głównie na narzędziu find, które wyszukuje pliki w działającym systemie plików Linux i jest bardziej wydajne i niezawodne w porównaniu do narzędzia locate.
Wadą locate jest to, że odczytuje jedną lub więcej baz danych utworzonych przez updatedb, a nie przeszukuje działającego systemu plików. Ponadto nie zapewnia tak dużej elastyczności w zakresie miejsca wyszukiwania (punktu początkowego).
Poniżej znajduje się składnia uruchamiania polecenia locate:
locate [option] [search-pattern]
Aby zademonstrować wady locate, załóżmy, że szukamy katalogu o nazwie pkg
w bieżącym katalogu roboczym.
Uwaga: w poleceniu poniżej opcja --basename
lub -b
informuje zlokalizuj<, aby dopasować tylko nazwę bazową pliku (katalogu) (która jest dokładnie pkg), ale nie ścieżkę (/path/to/pkg). Gdzie \
jest znakiem globbingu, wyłącza niejawne zastępowanie pkg przez *pkg*.
locate --basename '\pkg'
Jak widać z wyników powyższego polecenia, locate będzie wyszukiwać rozpoczynając od katalogu głównego (/), dlatego dopasowywane są inne katalogi o tej samej nazwie.
Dlatego, aby rozwiązać ten problem, użyj find, postępując zgodnie z uproszczoną składnią poniżej:
find starting-point options [expression]
Spójrzmy na kilka przykładów.
Aby wyszukać ten sam katalog (pkg)
powyżej, w bieżącym katalogu roboczym, uruchom następującą komendę, gdzie flaga -name
odczytuje wyrażenie, które w tym przypadku jest nazwa bazowa katalogu.
find . -name "pkg"
Jeśli napotkasz błędy „Odmowa uprawnień”, użyj polecenia sudo w następujący sposób:
sudo find . -name "pkg"
Możesz uniemożliwić find wyszukiwanie innych typów plików z wyjątkiem katalogów, używając flagi -type
do określenia typu pliku (w poleceniu poniżej d
oznacza katalog) w następujący sposób:
sudo find . -type d -name "pkg"
Ponadto, jeśli chcesz wyświetlić katalog w formacie długiej listy, użyj przełącznika akcji -ls
:
sudo find . -type d -name "pkg" -ls
Następnie opcja -iname
umożliwi wyszukiwanie bez uwzględniania wielkości liter:
sudo find . -type d -iname "pkg"
sudo find . -type d -iname "PKG"
Aby znaleźć bardziej interesujące i zaawansowane informacje o użytkowaniu, przeczytaj strony podręcznika znajdź i lokalizuj.
man find
man locate
I ostatnia uwaga: polecenie find jest bardziej niezawodne i wydajne przy wyszukiwaniu plików (lub katalogów) w systemie Linux w porównaniu z poleceniem locate.
W taki sam sposób jak poprzednio nie zapomnij przesłać nam swojej opinii lub pytań za pośrednictwem sekcji komentarzy poniżej. Wreszcie, zawsze utrzymuj połączenie z Tecmint.