Najbardziej popularne menedżery plików dla systemów operacyjnych na jądrze Linuksa mają dość funkcjonalne narzędzie wyszukiwania. Jednak parametry, które nie zawsze są w nim obecne, wystarczą użytkownikowi na wyszukanie niezbędnych informacji. W tym przypadku standardowe narzędzie uruchamiane przez Terminal przychodzi na ratunek. Pozwala łatwo znaleźć wymagane dane w określonym katalogu lub w całym systemie, wprowadzając polecenie, argument i opcję.
Treść
Polecenie find służy do wyszukiwania różnych obiektów, w tym plików o dowolnych formatach i katalogach o różnych głębokościach. Użytkownik musi tylko wprowadzić polecenie, określić żądaną wartość i przypisać argumenty, aby ustawić parametry filtrowania. Wykonanie procedury przez samo narzędzie zwykle nie zajmuje dużo czasu, ale zależy również od ilości skanowanych informacji. Spójrzmy teraz na przykłady użycia znajdź bardziej szczegółowo.
Na początek chciałbym trochę wycofać się z zespołu głównego i poruszyć temat dodatkowych działań, które pomogą w przyszłości podczas zarządzania z konsoli. Faktem jest, że narzędzia w dystrybucjach Linuksa nie są wyostrzone przez wyszukiwanie wszystkich elementów na komputerze. Wszystkie procesy należy uruchamiać tylko z pełną lokalizacją elementów lub przejść do lokalizacji za pomocą polecenia cd . Można to zrobić dość łatwo:
cd /home/user/folder
, gdzie użytkownik jest nazwą katalogu domowego użytkownika, a folder jest nazwą żądanego katalogu. Jeśli przed użyciem find , aby wykonać powyższe instrukcje, możesz pominąć pełną ścieżkę do pliku, pod warunkiem, że znajduje się w wybranej lokalizacji. Takie rozwiązanie znacznie przyspieszy polecenia wejściowe w przyszłości.
Po uruchomieniu find
z uruchomionej konsoli otrzymasz wynik wyszukiwania w katalogu domowym aktywnego użytkownika. W innym przypadku, na przykład, gdy aktywujesz podczas wyszukiwania według lokalizacji, w wynikach zobaczysz wszystkie podfoldery i pliki tego miejsca obecne w nich.
Aktywacja funkcji wyszukiwania bez argumentów i opcji jest używana, gdy trzeba wyświetlić wszystkie elementy na raz. Jeśli ich nazwa nie pasuje całkowicie do ciągów, warto zmienić polecenie, aby find . -print
formularz find . -print
find . -print
.
Polecenie wyświetlania plików przez daną ścieżkę jest prawie takie samo, jak wspomniane powyżej. Powinieneś również określić find
, a następnie dodać ./folder
jeśli chcesz dowiedzieć się o katalogu w bieżącej lokalizacji, lub musisz podać pełną ścieżkę, wpisując, na przykład, find ./home/user/downloads/folder
, gdzie jest folder katalog końcowy Każdy element będzie wyświetlany w osobnych wierszach w kolejności ich głębokości.
Czasami istnieje potrzeba wyświetlenia tylko obiektów, które spełniają nazwę. Następnie użytkownik musi ustawić osobną opcję dla polecenia, aby zrozumiał odwołanie. Wiersz wprowadzania ma postać: find .
-name "słowo", gdzie słowo jest słowem kluczowym wyszukiwania, które musi być zapisane w cudzysłowie i rozróżniana wielkość liter dla każdego znaku.
Jeśli nie znasz dokładnego przypadku każdej litery lub chcesz wyświetlić wszystkie pasujące nazwy, bez uwzględniania tego parametru, wpisz find . -iname "word"
w konsoli find . -iname "word"
find . -iname "word"
.
Aby filtrować wyniki według słów kluczowych, do argumentu -name dodaje się jeszcze jedną. Polecenie ma postać find . -not -name "word"
find . -not -name "word"
, gdzie słowo jest słowem do usunięcia.
Czasami jednak istnieje potrzeba znalezienia obiektów za pomocą jednego klawisza, z wyłączeniem drugiego. Następnie przypisuje się kolejno kilka opcji wyszukiwania, a wiersz wprowadzania jest następujący: find . -name "word" -not name "*.txt"
find . -name "word" -not name "*.txt"
. Zauważ, że drugi argument w cudzysłowie wskazuje „ * .txt” , co oznacza, że find działa nie tylko z nazwami, ale także z formatami plików określonymi w tym formularzu.
Istnieje również operator OR . Umożliwia znalezienie jednego lub kilku odpowiednich argumentów jednocześnie. Każdy jest określony osobno, z dodaniem odpowiednich argumentów. Wynikiem jest coś takiego: find -name "word" -o -name "word1"
.
Polecenie find pomoże użytkownikowi nawet wtedy, gdy musi znaleźć zawartość katalogów tylko na określoną głębokość, na przykład analiza nie jest wymagana w trzecim podfolderze. Aby ustawić te limity, wprowadź find . -maxdepth N -name "word"
find . -maxdepth N -name "word"
, gdzie N jest maksymalną głębokością, a -name „słowo” to dowolne kolejne argumenty.
W wielu katalogach istnieje kilka folderów o różnej zawartości. Jeśli jest ich duża liczba, a wyszukiwanie musi być przeprowadzone tylko w niektórych, to trzeba to określić, wpisując find ./folder ./folder1 -type f -name "word"
, gdzie ./folder ./folder1 to lista odpowiednich katalogów i -name „słowo” - pozostałe argumenty.
Bez odpowiedniego argumentu ukryte obiekty w skanowanych katalogach nie będą wyświetlane w konsoli. Dlatego użytkownik ręcznie wprowadza dodatkową opcję kończącą się poleceniem: find ~ -type f -name ".*"
. Otrzymasz pełną listę wszystkich plików, ale jeśli niektóre z nich są niedostępne, wpisz sudo
w wierszu przed słowem znajdź, aby aktywować prawa administratora.
Każdy użytkownik może utworzyć nieograniczoną liczbę katalogów i obiektów w różnych lokalizacjach. Najszybszy sposób na znalezienie informacji należących do jednego z użytkowników za pomocą polecenia find i jednego z jego argumentów. find . -user username
liście „Terminal” find . -user username
find . -user username
, gdzie nazwa użytkownika to nazwa użytkownika. Po wprowadzeniu skanowania rozpocznie się automatycznie.
W przybliżeniu ten sam schemat działa z grupami użytkowników. Analiza plików powiązanych z jedną z grup jest find /var/www -group groupname
za pomocą find /var/www -group groupname
. Nie zapominaj, że może istnieć duża liczba obiektów, a czasami ich wydrukowanie zajmuje dużo czasu.
System operacyjny automatycznie zapisuje datę zmiany każdego istniejącego pliku. Polecenie find pozwala znaleźć je wszystkie według określonego parametru. Musisz tylko zarejestrować sudo find / -mtime N
, gdzie N jest liczbą dni temu, kiedy obiekt był ostatnio modyfikowany. Prefiks sudo jest potrzebny do uzyskania danych o plikach przeznaczonych tylko dla superużytkownika.
Jeśli jesteś zainteresowany przeglądaniem przedmiotów, które ostatnio otworzyły określoną liczbę dni temu, linia zmienia nieco swój wygląd na sudo find / -atime N
Każdy obiekt ma swój własny rozmiar, polecenie wyszukiwania plików musi mieć funkcję, która umożliwia ich filtrowanie według tego parametru. find jest w stanie to zrobić, użytkownik musi jedynie ustawić rozmiar za pomocą argumentu. Po prostu wpisz find / -size N
, gdzie N to objętość w bajtach, megabajtach (M) lub gigabajtach (G).
Możesz określić zakres żądanych elementów. Następnie kwalifikatory pasują do polecenia, a otrzymasz na przykład następującą linię: find / -size +500M -size -1000M
. Ta analiza wyświetli pliki o rozmiarze ponad 500 megabajtów, ale mniej niż 1000.
Niektóre pliki lub foldery są puste. Po prostu zajmują dodatkowe miejsce na dysku i czasami zakłócają normalną interakcję z komputerem. Powinny być znalezione, aby zdecydować o dalszych działaniach, a find /folder -type f -empty
pomoże w tym, gdzie / folder jest miejscem, w którym wykonywane jest skanowanie.
Osobno chciałbym krótko wspomnieć o innych przydatnych argumentach, które od czasu do czasu stają się przydatne dla użytkownika:
-mount
- ograniczenie tylko do obecnego systemu plików; -type f
- wyświetla tylko pliki; -type d
- pokaż tylko katalogi; -nogroup
, -nouser
- wyszukuje pliki, które nie należą do żadnej grupy lub nie należą do użytkownika; -version
- sprawdź wersję używanego narzędzia. Po zapoznaniu się z poleceniem find jest zakończone. Jeśli chcesz szczegółowo zbadać inne standardowe narzędzia konsolowe systemów operacyjnych na jądrze Linuksa, radzimy zapoznać się z naszym oddzielnym materiałem pod następującym linkiem.
Więcej szczegółów: Często używane polecenia w terminalu Linux
Po wyszukaniu wymaganych informacji możesz wykonywać z nimi inne czynności, na przykład edytować, usuwać lub studiować zawartość. Pomoże to innym wbudowanym narzędziom „Terminal” . Przykłady ich użycia znajdują się poniżej.