28Jun

Jak znaleźć pliki i foldery w systemie Linux za pomocą wiersza poleceń

Większość ludzi używa graficznego menedżera plików do znajdowania plików w systemie Linux, takich jak Nautilus w Gnome, Dolphin w KDE i Thunar w Xfce. Istnieje jednak kilka sposobów użycia wiersza poleceń w celu znalezienia plików w systemie Linux, bez względu na to, jakiego menedżera pulpitu używasz.

Korzystanie z polecenia Znajdź

Komenda "Znajdź" umożliwia wyszukiwanie plików, dla których znasz przybliżone nazwy plików. Najprostsza forma polecenia wyszukuje pliki w bieżącym katalogu i rekurencyjnie poprzez swoje podkatalogi, które pasują do dostarczonych kryteriów wyszukiwania. Możesz wyszukiwać pliki według nazwy, właściciela, grupy, typu, uprawnień, daty i innych kryteriów.

Wpisując poniższe polecenie w liście wyświetla się lista wszystkich plików znajdujących się w bieżącym katalogu.

znaleźć.

Kropka po "Znajdź" wskazuje bieżący katalog.

Aby znaleźć pliki pasujące do określonego wzorca, użyj argumentu -name. Możesz użyć metaznaków nazw plików( takich jak *), ale powinieneś albo umieścić znak ucieczki( \) przed każdym z nich, albo zawrzeć je w cudzysłowie.

Na przykład, jeśli chcemy znaleźć wszystkie pliki rozpoczynające się od "pro" w katalogu Dokumenty, użyjemy komendy cd Documents /, aby przejść do katalogu Dokumenty, a następnie wpisz następujące polecenie:

find.-name pro \ *

Wyświetlane są wszystkie pliki w bieżącym katalogu zaczynające się od "pro".

UWAGA: Polecenie find domyślnie uwzględnia wielkość liter. Jeśli chcesz, aby wyszukiwanie wyrazu lub frazy było niewrażliwe na wielkość liter, użyj opcji -iname za pomocą polecenia find. Jest to niewrażliwa na wielkość liter wersja polecenia -name.

Jeśli find nie znajdzie żadnych plików pasujących do twoich kryteriów, nie generuje żadnych wyników.

Polecenie find ma wiele opcji do udoskonalenia wyszukiwania. Aby uzyskać więcej informacji o poleceniu find, uruchom funkcję man find znajdującą się w oknie Terminala i naciśnij klawisz Enter.

Korzystanie z polecenia Locate

Polecenie locate jest szybsze niż polecenie find, ponieważ używa wcześniej zbudowanej bazy danych, natomiast polecenie find wyszukuje w rzeczywistym systemie, poprzez wszystkie rzeczywiste katalogi i pliki. Komenda lokalizuje zwraca listę wszystkich nazw ścieżek zawierających określoną grupę znaków.

Baza danych jest okresowo aktualizowana z crona, ale możesz również zaktualizować ją w dowolnym momencie, aby uzyskać aktualne wyniki. Aby to zrobić, wpisz następujące polecenie w wierszu polecenia:

sudo updatedb

Po wyświetleniu monitu wpisz hasło.

Podstawowa forma polecenia lokalizowania znajduje wszystkie pliki w systemie plików, począwszy od katalogu głównego, które zawierają wszystkie lub dowolne części kryteriów wyszukiwania.

zlokalizuj mydatę

Na przykład powyższe polecenie znalazło dwa pliki zawierające "mydata" i jeden plik zawierający "dane".

Jeśli chcesz znaleźć wszystkie pliki lub katalogi, które zawierają dokładnie i tylko twoje kryteria wyszukiwania, użyj opcji -b zpolecenie zlokalizowania, jak następuje.

zlokalizuj -b 'mydata'

Ukośnik odwrotny w powyższym poleceniu jest znakiem globalnym, który zapewnia sposób rozszerzania znaków wieloznacznych w nieokreślonej nazwie pliku do zbioru określonych nazw plików. Symbol wieloznaczny to symbol, który można zastąpić jednym lub większą liczbą znaków, gdy wyrażenie jest oceniane. Najczęstsze symbole wieloznaczne to znak zapytania( ?), Który oznacza pojedynczy znak i gwiazdkę( *), która oznacza ciąg ciągów znaków. W powyższym przykładzie ukośnik odwrotny wyłącza niejawną zamianę "mydata" przez "* mydata *", więc kończy się tylko wynikami zawierającymi "mydata".

Komenda mlocate jest nową implementacją lokalizacji. Indeksuje cały system plików, ale wyniki wyszukiwania obejmują tylko pliki, do których bieżący użytkownik ma dostęp. Po aktualizacji bazy danych programu mlocate przechowuje ona informacje o znacznikach czasowych w bazie danych. Dzięki temu mlocate wie, czy zawartość katalogu zmieniła się bez ponownego czytania zawartości i powoduje, że aktualizacje bazy danych są szybsze i mniej wymagające na dysku twardym.

Podczas instalowania programu mlocate plik /usr/bin/ lokalizuje zmiany plików binarnych, aby wskazywały na program mlocate. Aby zainstalować program mlocate, jeśli nie jest jeszcze uwzględniony w dystrybucji systemu Linux, wpisz następujące polecenie w wierszu polecenia.

sudo apt-get install mlocate

UWAGA: W dalszej części artykułu pokażemy polecenie, które pozwoli ci określić, gdzie znajduje się plik wykonywalny dla polecenia, jeśli istnieje.

Komenda mlocate nie używa tego samego pliku bazy danych, co standardowa komenda lokalizowania. Dlatego możesz chcieć utworzyć bazę danych ręcznie, wpisując następujące polecenie w wierszu polecenia:

sudo /etc/cron.daily/ mlocate

Polecenie mlocate nie będzie działało, dopóki baza danych nie zostanie utworzona ręcznie lub gdy skrypt zostanie uruchomiony z crona.

Aby uzyskać więcej informacji na temat lokalizacji lub polecenia mlocate, wpisz man locate lub man mlocate w oknie Terminala i naciśnij klawisz Enter. Ten sam ekran pomocy wyświetla się dla obu poleceń.

Używanie polecenia

Polecenie "which" zwraca bezwzględną ścieżkę do pliku wykonywalnego, który jest wywoływany podczas wydawania polecenia. Jest to przydatne przy znajdowaniu lokalizacji pliku wykonywalnego do tworzenia skrótu do programu na pulpicie, panelu lub innym miejscu w menedżerze pulpitu. Na przykład, wpisując polecenie, które Firefox wyświetla wyniki pokazane na obrazku poniżej.

Domyślnie polecenie which wyświetla tylko pierwszy pasujący plik wykonywalny. Aby wyświetlić wszystkie pasujące pliki wykonywalne, użyj opcji -a za pomocą komendy:

, która -a firefox

Możesz wyszukać wiele plików wykonywalnych za jednym razem, jak pokazano na poniższym obrazie. Wyświetlane są tylko ścieżki do znalezionych plików wykonywalnych. W poniższym przykładzie znaleziono plik wykonywalny "ps".

UWAGA: Polecenie, które przeszukuje zmienną PATH bieżącego użytkownika. Jeśli wyszukasz plik wykonywalny, który jest dostępny tylko dla użytkownika root jako zwykły użytkownik, żadne wyniki nie zostaną wyświetlone.

Aby uzyskać więcej informacji o tym poleceniu, wpisz "man which"( bez cudzysłowów) w wierszu polecenia w oknie terminala i naciśnij klawisz Enter.

Korzystanie z polecenia Whereis

Komenda whereis służy do znajdowania plików binarnych, źródłowych i stron man dla polecenia. Na przykład, wpisując whereis firefox przy monicie wyświetla wyniki jak pokazano na poniższym obrazie.

Jeśli chcesz wyświetlić tylko ścieżkę do pliku wykonywalnego, a nie ścieżki do strony źródłowej i strony man( u), użyj opcji -b. Na przykład polecenie whereis -b firefox wyświetli tylko firefox /usr/bin/.Jest to przydatne, ponieważ najprawdopodobniej będziesz szukał pliku wykonywalnego programu częściej niż szukał strony źródłowej i strony man dla tego programu. Możesz także wyszukiwać tylko pliki źródłowe( -s) lub tylko strony podręcznika( -m).

Aby uzyskać więcej informacji o poleceniu whereis, wpisz man whereis w oknie Terminala i naciśnij klawisz Enter.

Zrozumienie różnicy między poleceniem Whereis a poleceniem

Polecenie whereis pokazuje lokalizację stron binarnych, źródłowych i strony man dla polecenia, podczas gdy polecenie which pokazuje tylko położenie pliku binarnego dla polecenia.

Polecenie whereis przeszukuje listę określonych katalogów dla plików binarnych, źródłowych i plików man, podczas gdy polecenie which przeszukuje katalogi wymienione w zmiennej środowiskowej PATH bieżącego użytkownika. Aby uzyskać polecenie whereis, listę określonych katalogów można znaleźć w sekcji PLIKI na stronach man dla polecenia.

Jeśli chodzi o wyniki wyświetlane domyślnie, polecenie whereis wyświetla wszystko, co znajdzie, podczas gdy polecenie which wyświetla tylko pierwszy znaleziony plik wykonywalny. Możesz to zmienić używając opcji -a, omówionej wcześniej, dla której polecenia.

Ponieważ polecenie whereis używa tylko ścieżek zakodowanych w komendzie, możesz nie zawsze znaleźć to, czego szukasz. Jeśli szukasz programu, który Twoim zdaniem może być zainstalowany w katalogu nie wymienionym na stronach man dla polecenia whereis, możesz użyć polecenia which z opcją -a, aby znaleźć wszystkie wystąpienia polecenia w całym systemie.