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?
.