Jak używać polecenia find w systemie Linux do wyszukiwania plików?

How Use Find Command Linux Search Files



Jeśli jesteś użytkownikiem Linuksa, nie możesz po prostu polegać na GUI do wykonywania różnych zadań, dlatego solidne zrozumienie poleceń terminala jest naprawdę niezbędne. Wszystkie dystrybucje oparte na systemie Linux uruchamiają polecenia w celu wykonywania różnych zadań administracyjnych.

Chociaż terminal Linux jest interfejsem tekstowym, który wydaje się skomplikowany, w rzeczywistości jest bardzo elastyczny, łatwy w użyciu i całkiem użytecznym narzędziem. Polecenia można łatwo kopiować ze źródeł internetowych i wklejać do terminala w celu wykonywania różnych operacji. Istnieje mnóstwo poleceń, ale ten post skupi się na poleceniu find.







Polecenie find służy do wyszukiwania, filtrowania lub wyszukiwania plików i folderów w systemie zgodnie z warunkami określonymi przez użytkownika i wykonywania na nich kilku operacji.



Omówmy szczegółowo, jak korzystać z polecenia find, jego składnię i różne operacje wykonywane przez to polecenie.



Składnia polecenia find w systemie Linux

Składnia polecenia find jest pokazana poniżej:





odnaleźć [ścieżka] [opcje] [wyrażenie]

Do polecenia find należą trzy atrybuty:

  • [ścieżka]: Określa katalog, w którym należy rozpocząć wyszukiwanie.
  • [opcje]: Określa kryteria filtrowania m.in. wyszukiwanie pliku/folderu według jego nazwy, uprawnień, czasu lub daty.
  • [wyrażenie]: Określa, jakie działania należy wykonać na pliku.

Wszystkie powyższe atrybuty są opcjonalne, ponieważ mogą być używane zgodnie z wymaganiami.



Do demonstracji stworzyłem różne katalogi i kilka plików tekstowych, zobacz obrazek poniżej:

znajdź/1%20kopii.png

Znajdowanie pliku według nazwy

Aby wyszukać plik według nazwy, użyj poniższego polecenia:

$odnaleźć.-NazwaMójPlikTekst1.txt

znajdź/2%20kopi.png

Kropka po find w powyższym poleceniu wskazuje bieżący katalog.

Jeśli nie pamiętasz dokładnej nazwy pliku, wyszukiwanie można dodatkowo uściślić i sprawić, że nie będzie rozróżniana wielkość liter, używając -iname w miejscu nazwy:

$odnaleźć.-ja nazywammójpliktekstowy1.txt

znajdź/3%20kopii.png

Znajdowanie pliku według typu

Aby znaleźć plik według jego typu, użyj opcji -type z literami znanymi również jako deskryptory, takimi jak f dla plików, d dla katalogów, l dla dowiązania symbolicznego i s dla gniazd.

Aby przeszukać wszystkie katalogi, użyj:

$odnaleźć.-rodzajD

znajdź/4%20kopii.png

Aby wyszukać pliki, użyj:

$odnaleźć.-rodzajF

c%20kopia.png

Znajdowanie pliku według rozszerzenia pliku

Aby wyszukać plik według wzorca, np. rozszerzenia pliku, takiego jak wyświetlanie wszystkich plików z rozszerzeniem .txt, użyj następującego polecenia:

$odnaleźć.-Nazwa *.tekst

znajdź/5%20kopii.png

Wszystkie pliki z rozszerzeniem .txt zostaną wyświetlone wraz z odpowiadającymi im katalogami.

Znajdowanie i usuwanie pliku

Aby wyszukać i usunąć plik, użyj poniższego polecenia:

$odnaleźć.-ja nazywammójpliktekstowy1.txt-exec rm {};

znajdź/6%20kopi.png

Powyższe polecenie najpierw przeszukuje plik, a następnie go usuwa. Obraz pokazuje, że MyTextFile1 został usunięty.

Aby usunąć wszystkie pliki z rozszerzeniem .txt, możesz użyć dołączonego polecenia:

$odnaleźć.-Nazwa *.tekst-kasować

znajdź/7%20kopii.png

Znajdowanie pliku według rozmiaru

Polecenie find może również wyszukiwać plik według rozmiaru. Po prostu użyj opcji -size wraz z jej deskryptorami, takimi jak b dla bloków 512 Kb, c dla bajtów, k dla kilobajtów, M i G dla odpowiednio megabajtów i gigabajtów:

$odnaleźć.-rodzajF-rozmiar -1024c

znajdź/8%20kopii.png

Wspomniane powyżej polecenie przeszukuje wszystkie pliki o rozmiarze mniejszym niż 1024 bajty. Wyszukiwanie można dodatkowo zawęzić, na przykład, jeśli chcemy znaleźć wszystkie pliki, które są mniejsze niż 1Mb, używamy poniższego polecenia:

$odnaleźć.-rodzajF-rozmiar1M

ab/a%20copy.png

W przypadku wszystkich plików większych niż 1 MB użyj poniższego polecenia:

$odnaleźć.-rodzajF-rozmiar+1 mln

ab/b%20copy.png

Zakres rozmiarów można również zdefiniować za pomocą dołączonego polecenia:

$odnaleźć. -rodzajF-rozmiar+1 mln-rozmiar10M

Znajdowanie plików za pozwoleniem

Aby wyszukać plik według uprawnień, użyjemy opcji -perm, a następnie kodu uprawnień, jak pokazano poniżej:

$odnaleźć.-trwała ondulacja 664

znajdź/10%20kopii.png

Znajdź tekst w plikach tekstowych

Aby znaleźć tekst w wielu plikach tekstowych w twoim systemie, użyj polecenia podanego poniżej:

$odnaleźć.-rodzajF-Nazwa *.tekst-exec chwyt'Dzień dobry'{};

znajdź/12%20kopii.png

Polecenie wyszukuje słowo Hello w plikach tekstowych. Wynikiem są ciągi tekstowe z plików tekstowych zawierających Hello.

Znajdowanie pliku według daty i godziny modyfikacji

Aby uzyskać dostęp do pliku po jego ostatniej modyfikacji, użyj poniższego polecenia:

$odnaleźć.-rodzajF-ja nazywam *.tekst-mmin+10

znajdź/13%20kopii.png

Powyższe polecenie wyszukuje plik ostatnio zmodyfikowany cztery minuty temu, a m oznacza modyfikację.

$odnaleźć. -rodzajF-ja nazywam *.tekst-jestem w -10

znajdź/14%20kopiuj.png

Powyższe polecenie wyszukuje plik, do którego ostatnio uzyskano dostęp 4 minuty temu, a a in amin oznacza Access. Aby uzyskać dostęp do pliku, który został zmodyfikowany cztery dni temu, użyj -mtime +4 zamiast mmin +4.

Wniosek

Polecenie find w systemie Linux to bardzo przydatne polecenie, które pozwala przeszukiwać plik lub katalog przy użyciu różnych kryteriów, a nawet umożliwia modyfikowanie plików z terminala. W tym przewodniku zaobserwowaliśmy składnię polecenia find w systemie Linux i dowiedzieliśmy się, jak używać polecenia find do wykonywania różnych funkcji.