Wyszukiwanie w witrynie

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.