TeamQuest Blog

Szukanie na Linuksie

Szukanie na Linuksie

Marcin Sarna , 07.12.2020 r.

Nieważne czy chcesz się nauczyć czy tylko odświeżyć zakurzoną wiedzę - szybko i prosto o find i grep.

Nie bój się linii poleceń

Terminal jest ważnym narzędziem, które umożliwia zaawansowanym użytkownikom wydajną nawigację po systemie plików. Często systemy plików (zwłaszcza na serwerach) są tak duże i złożone, że korzystanie z graficznej przeglądarki plików do ich wyszukiwania jest powolne i nieefektywne. Jeśli jesteś programistą, który zawsze ma otwarty terminal, powinieneś znać podstawy jego obsługi (np. właśnie w zakresie wyszukiwania plików) zamiast od razu sięgać po przeglądarkę.

Dwa najpopularniejsze zapytania linuksowych użytkowników związane z wyszukiwaniem obejmują wyszukiwanie nazwy pliku lub folderu według nazwy oraz wyszukiwanie plików zawierających słowo kluczowe. W tym artykule omówimy polecenia, które pozwolą nam to osiągnąć. Linia poleceń to w końcu nie tylko cd oraz ls.

Komenda find

Wyszukiwanie pliku według nazwy jest podstawową funkcją każdego systemu. Polecenie Linuksa, które na to pozwala, nazywa się find. Polecenie find oczekuje następującej składni:

Find [-H] [-L] [-P] [-D opcje debugowania] [-Olevel] [ścieżka ...] [wyrażenie]

Mówiąc prościej, odpowiada to:

find [ścieżka] [opcje] [nazwa]

To polecenie będzie rekurencyjnie wyszukiwać, zaczynając od [ścieżka], pod kątem nazwy określonej przez [opcje]. Poniżej znajduje się kilka typowych poleceń wyszukiwania.

Przykłady

Wyszukaj pliki o podanej nazwie: find . -name [name]. Zwraca wszystkie pliki o nazwie [name]. W polu nazwy można również podać wyrażenie regularne: find . -name "*.json" zwróci wszystkie pliki kończące się na „.json”.

A jak wyszukać katalogi o podanej nazwie? Flaga -type wskazuje, jaki typ pliku ma zwrócić wyszukiwanie. Typy rozpoznawane przez polecenie find to:

  • f: zwykły plik
  • d: katalog
  • l: dowiązanie symboliczne
  • c: urządzenia znakowe
  • b: urządzenia blokowe

find . -type d -name "src" zwróci wszystkie katalogi o nazwie „src”.

Sprawdź oferty pracy na TeamQuest

Polecenie grep

Polecenie grep służy do wyszukiwania tekstu w systemie plików. Oczekuje następującej składni:

grep [OPCJE] WZÓR [PLIK ...]. Poniżej znajduje się kilka typowych poleceń grep.

Wyszukaj podany ciąg w pliku: grep test test.py - zwraca wiersze zawierające ciąg „test” w pliku „test.py”.

Wyszukaj podany ciąg w wielu plikach: grep test * .py - zwraca wiersze zawierające ciąg „test” we wszystkich plikach Pythona, które znajdują się w bieżącym katalogu.

Rekurencyjne wyszukiwanie łańcucha w wielu plikach (opcja -r służy do określenia, że wyszukiwanie powinno być rekurencyjne): grep -r test - zwraca wiersze zawierające ciąg „test” we wszystkich rekurencyjnych podkatalogach.

Wyszukiwanie bez rozróżniania wielkości liter (użycie opcji -i): grep -r -i test - zwraca wiersze zawierające tekst „test” bez rozróżniania wielkości liter we wszystkich podkatalogach rekurencyjnych.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej