Polecenie FIND systemu Linux z przykładami


Czy wiesz, ile plików znajduje się w nowej instalacji systemu Linux? Jeśli używasz PopOS! Na przykład Dystrybucja Linuksa jest ponad 31 000 plików. To jeszcze zanim zaczniesz tworzyć jakiekolwiek dokumenty, przechowywać muzykę, pobierać pliki PDF lub porządkować zdjęcia.

Z tego powodu znalezienie odpowiedniego pliku lub folderu w systemie Linux, kiedy go potrzebujesz, staje się wyzwaniem. W tym artykule dowiesz się, jak używać polecenia FIND w systemie Linux, a my podamy wszystkie możliwe przykłady.

Składnia polecenia FIND w systemie Linux

Składnia odnosi się do sposobu łączenia słów lub poleceń. Tak jak zwykłe zdanie może stać się bzdurą przez zwykłe przemieszanie słów, tak polecenia mogą zakończyć się niepowodzeniem, jeśli nie zostaną użyte z odpowiednią składnią.

znajdź [ścieżkę] [warunki] [akcje]

Oto co to oznacza:

find – uruchamia narzędzie Znajdź w systemie Linux

ścieżka – gdzie szukać

warunki – argumenty, które chcesz zastosować przy wyszukiwaniu

działania – co chcesz zrobić z wynikami

Prosty przykład użycia wszystkich trzech wygląda następująco:

znajdź . -name plik-przykład.rtf -print

Jak się domyślasz, znajdzie się plik o nazwie file-sample.rtf .

Ścieżka z kropką (. ) informuje find, aby przeszukał bieżący katalog i wszystkie znajdujące się w nim katalogi.

Warunek -name informuje, że funkcja find ma pobrać plik o określonej nazwie.

Akcja -print informuje funkcję FIND, aby pokazała wyniki na ekranie.

Kropka i -print są wartościami domyślnymi polecenia find. Więc nadal będzie robić to samo, jeśli ich nie użyjesz. Zatem find -name file-sample.rtf da takie same wyniki.

Linux ZNAJDŹ w innym katalogu

Możesz wyszukiwać w katalogu innym niż ten, w którym się znajdujesz. Po prostu wstaw ścieżkę do katalogu po ZNAJDŹ. Jeśli jesteś w katalogu głównym i wiesz, że plik znajduje się gdzieś w katalogu home/user , użyj:

znajdź nazwę domu/użytkownika plik-przykład.rtf

To nadal jest wyszukiwanie rekurencyjne, więc przejdzie przez każdy katalog w sekcji użytkownik ..

Linux ZNAJDŹ Przeszukaj wiele katalogów

Jeśli chcesz przeszukać kilka katalogów jednocześnie, po prostu wypisz je w poleceniu, oddzielając je spacją.

znajdź /lib /var /bin -nazwa pliku-przykład.rtf

Linux FIND bez rekurencji lub ograniczającej rekursję

Jeśli użyłeś powyższego polecenia FIND na poziomie głównym, przeszukałoby ono wszystkie katalogi w systemie. Jeśli więc chcesz pozostać tylko w bieżącym katalogu, użyj opcji -max głębokość . Liczba znajdująca się po opcji -max głębokość informuje, jak głęboko należy zejść przed zatrzymaniem.

Użycie -max głębokość 1 oznacza tylko ten katalog.

find -name plik-przykład.rtf -max głębokość 1

Użycie wartości -max głębokość 2 lub większej oznacza przejście o wiele poziomów głębiej.

find -max głębokość 5 -name plik-przykład.rtf

Przykład symbolu wieloznacznego FIND w systemie Linux

Polecenie ZNAJDŹ używa gwiazdki (* ) jako symbolu wieloznacznego. Użyj go w przypadku dowolnej części nazwy, której nie jesteś pewien. Można go użyć więcej niż raz w nazwie. Bez typu pliku w nazwie pliku wyniki będą zawierać również pasujące katalogi.

znajdź plik*nazwa_domowa/użytkownika*

Linux ZNAJDŹ według typu Przykład

Aby wyszukać tylko plik lub katalog, użyj opcji -type i odpowiedniego deskryptora. Jest ich kilka, ale najczęściej spotykane są pliki i katalogi:

f – plik

d – katalog

b – zablokuj urządzenie

c – urządzenie znakowe

l – dowiązanie symboliczne

s – gniazdo

znajdź nazwa domu/użytkownika plik*przykład* -typ d

Przykład funkcji FIND w systemie Linux bez uwzględniania wielkości liter

W przeciwieństwie do systemu Windows, Linux zwraca uwagę na to, czy litera jest duża, czy mała. Jeśli więc chcesz, aby wyszukiwał zarówno plik File-Sample.rtf, jak i plik-sample.rtf, użyj opcji -iname .

znajdź nazwę domu/użytkownika -iname File-Sample.rtf

Linux ZNAJDŹ kilka plików – przykład

Załóżmy, że chcesz znaleźć wersje pliku .rtf i .html. Można to zrobić jednym poleceniem, używając operatora -o (lub). W niektórych dystrybucjach może być konieczne umieszczenie nazw w nawiasach, np. ( -name plik-przykład.rtf -o -nazwa pliku-przykład.html ) ..

znajdź nazwę domu/użytkownika -przykład-pliku.rtf -o -nazwę-przykład-pliku.html

Linux ZNAJDŹ pliki, które nie pasują do nazwy

Być może wiesz, że istnieje wersja .html pliku, ale nie wiesz, czy istnieją inne. Możesz odfiltrować wersję .html z wyszukiwania, używając opcji -not .

znajdź nazwę_domową/użytkownika -próbkę-pliku* -nie -nazwę *.html

Linux FIND bez wyników błędów

W przykładzie wyszukiwania bez rekurencji zauważ, że wyświetla listę wszystkich katalogów, w których nie można przeszukać, oraz poprawny wynik. To irytujące. Zatrzymajmy go przed pokazywaniem wszystkich katalogów z informacją o „Odmowie dostępu”. Połącz go z innym Polecenie terminala Linux, grep. Możesz także użyć Znajdź z grep do znajdź pliki zawierające określone słowa.

find -max głębokość 5 -name plik-przykład.rtf 2>&1 | grep -v „Odmowa dostępu”

Rozłóżmy na 2>&1 .

2 – reprezentuje stderr, który jest skrótem od standardowego wyjścia błędów.

1 – reprezentuje stdout, które jest skrótem od standardowego wyjścia

> – oznacza przekierowanie dowolnego wyjścia znajdującego się po lewej stronie do tego, co znajduje się po prawej stronie.

& – oznacza złożenie w całość.

A więc 2>&1 oznacza wzięcie standardowych błędów i przekierowanie ich, a następnie połączenie ich ze standardowym wyjściem w jedno wyjście.

Teraz spójrzmy na | grep -v „Odmowa dostępu” .

| (nazywany potokiem) – mówi Linuksowi, aby przekazał wyniki tego, co jest po jego lewej stronie, do tego, co jest po jego prawej stronie. Jest przekazywany do polecenia grep.

grep – to narzędzie do wyszukiwania tekstu.

-v – mówi grepowi, aby wyszukał wszystko, co nie pasuje do tekstu po lewej stronie opcji -v. W tym przypadku mówi grepowi, aby znalazł tylko wszystko, co nie zawiera tekstu ani ciągu znaków „Odmowa uprawnień”. Dlatego grep pokaże Ci tylko te wyniki, których szukasz, oraz wszelkie błędy, które nie pasują do „Odmowa uprawnień”.

Przykład ZNAJDOWANIA Linuksa na podstawie uprawnień

.

Aby dobrze to wykorzystać, musisz naucz się uprawnień Linuksa.

Wszystkie przykładowe pliki mają uprawnienia 664, z wyjątkiem jednego z uprawnieniami 775. Użyj opcji -perm , aby je znaleźć.

znajdź dokumenty/ -name plik-próbka* -type f -perm 775

Przykład ZNAJDŹ według rozmiaru w systemie Linux

Wyszukiwanie plików według rozmiaru jest przydatne, gdy duże pliki zapełniają dysk twardy. Użyj opcji -size, żądanego rozmiaru i jednego z poniższych przyrostków. Jeśli nie zostanie użyty żaden przyrostek, -size domyślnie przyjmuje wartość b . Aby znaleźć pliki o rozmiarze równym lub większym od określonego rozmiaru, umieść znak plus (+) przed rozmiarem.

M – megabajty

G – gigabajty

k – kilobajty

b – bloki (512 bajtów – domyślnie)

c – bajty

w – słowa (razem dwa bajty)

znajdź -size +500 tys.

Linux ZNAJDŹ według właściciela

Istnieją dwa sposoby wyszukiwania plików według właściciela. Jedna dotyczy nazwy użytkownika właściciela, a druga grupy użytkownika. Aby wyszukiwać według nazwy użytkownika, użyj opcji -user , a następnie nazwy użytkownika. Aby znaleźć według grupy użytkowników, użyj -group po którym następuje nazwa grupy..

find -user nazwa grupy lub find -user nazwa użytkownika

Linux ZNAJDŹ pliki według przykładu ostatniej modyfikacji

Aby znaleźć pliki, które zostały zmodyfikowane lub edytowane w ciągu ostatnich X dni, użyj -mtime , po którym następuje liczba. Umieszczenie znaku minus ( ) przed liczbą spowoduje wykrycie zmian w ciągu tylu dni wcześniej. Znak plus (+ ) oznacza, że ​​w ciągu tylu dni wcześniej.

find -name „plik-próbka*” -mtime +5 (więcej niż 5 dni temu)

find -name „plik-próbka*” -mtime -5 (mniej niż 5 dni temu)

Aby znaleźć datę ostatniej modyfikacji w minutach, użyj opcji -mmin, po której należy podać liczbę minut. Użyj + i – jak powyżej.

find -name „próbka-pliku*” -mmin -5

find -name „próbka-pliku*” -mmin +5

Linux ZNAJDŹ pliki według czasu ostatniego dostępu, przykładowy czas

.

Opcja używana do wyszukiwania plików na podstawie daty ich ostatniego otwarcia to -atime oznaczająca dni i -amin określająca minuty. Następnie podaj liczbę dni lub minut, aby cofnąć się i użyj znaku + i – jako wartości większej niż i mniejszej niż.

find -name „plik-próbka*” -atime -5

find -name „próbka-pliku* -amin -5

Połącz funkcję FIND z innymi poleceniami systemu Linux

Powyżej znajduje się przykład użycia find z poleceniem grep, ale można go używać z wieloma innymi. Możesz zobaczyć, że używanie poleceń find i innych może być bardzo przydatne i pozwala zaoszczędzić dużo czasu. Wyobraź sobie, że musisz usunąć grupę plików określonego typu. Zamiast przeszukiwać eksplorator plików, po prostu wykonaj odpowiednie polecenie, a zrobi się to w ciągu kilku sekund. Jak użyjesz teraz polecenia find?

.

Powiązane posty:


18.01.2022