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:
Znajdowanie pliku według nazwy
Aby wyszukać plik według nazwy, użyj poniższego polecenia:
$odnaleźć.-NazwaMójPlikTekst1.txt
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
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
Aby wyszukać pliki, użyj:
$odnaleźć.-rodzajF
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
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 {};
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ć
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
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
W przypadku wszystkich plików większych niż 1 MB użyj poniższego polecenia:
$odnaleźć.-rodzajF-rozmiar+1 mln
Zakres rozmiarów można również zdefiniować za pomocą dołączonego polecenia:
$odnaleźć. -rodzajF-rozmiar+1 mln-rozmiar10MZnajdowanie 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ź 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'{};
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
Powyższe polecenie wyszukuje plik ostatnio zmodyfikowany cztery minuty temu, a m oznacza modyfikację.
$odnaleźć. -rodzajF-ja nazywam *.tekst-jestem w -10
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.