Często konieczne jest wyszukanie określonych typów plików w środowiskach Linux i nie wiemy, jak prawidłowo je przeszukać bez marnowania czasu.
Dla dystrybucji Linuksa opracowano polecenie o nazwie find, które zostało opracowane w celu rekursywnego filtrowania obiektów w systemie plików w oparciu o mechanizm warunkowy. Za pomocą tego polecenia find możemy wyszukać plik lub katalog w jego systemie plików.
Jeśli dodamy parametr -exec, pliki można znaleźć i przetworzyć natychmiast w ramach tego samego polecenia.
1. Znajdź pliki według nazwy lub rozszerzenia Polecenia systemu Linux
Możemy użyć find z wiersza poleceń, aby zlokalizować określony plik według nazwy lub rozszerzenia.
Jego składnia to:
find / home / username / -name "* .rozszerzenie"Na przykład poszukamy plików z rozszerzeniem .gz:
POWIĘKSZAĆ
2. Przydatne polecenia i składnia do użycia z poleceniami Find Linux
Za pomocą polecenia find mamy kilka opcji parametrów, takich jak:
znajdź opcje początek / ścieżka wyrażenieAtrybut options kontroluje zachowanie i metodę optymalizacji procesu wyszukiwania. Atrybut home / path określi katalog najwyższego poziomu, w którym find rozpocznie filtrowanie.
Atrybut expression steruje testami, które przeszukują hierarchię katalogów w celu uzyskania danych wyjściowych.
Na przykład możemy wykonać następujące czynności:
znajdź -O3 -L / var / www / -name "* .html"To polecenie włącza maksymalny poziom optymalizacji (-O3) i pozwala podążać za dowiązaniami symbolicznymi (-L) w celu przeszukania całego drzewa katalogów na ścieżce /var/www/ w poszukiwaniu plików kończących się na .html.
POWIĘKSZAĆ
3. Opcje i optymalizacja za pomocą poleceń Znajdź Linux
Domyślna konfiguracja Find do wyszukiwania będzie ignorować dowiązania symboliczne (pliki skrótów), jeśli chcemy, aby find podążał i pobierał dowiązania symboliczne, możemy dodać opcję -L do polecenia, jak widzieliśmy wcześniej. Find ma trzy (3) poziomy optymalizacji, którymi są -O1, -O2 i -O3.
Optymalizacja -O1 jest domyślna i wymusza wyszukiwanie w celu filtrowania na podstawie nazwy pliku przed uruchomieniem wszystkich innych testów.
Optymalizacja na poziomie -O2 nadaje priorytet filtrom nazw plików, tak jak w -O1, a następnie uruchamia filtrowanie wszystkich typów plików przed przejściem do innych, bardziej wymagających zasobów. Optymalizacja poziomu -O3 pozwala find na przeprowadzenie głębszej optymalizacji i ponowne uporządkowanie wszystkich testów na podstawie ich względnych wydatków i prawdopodobieństwa uzyskania lepszych wyników.
Niektóre z opcji to:
Jest to filtr oparty na pierwszej nazwie pliku
-O1 (domyślnie)
Użyj najpierw nazwy pliku, a następnie typu pliku
-O2
Zmień kolejność wynikówUmożliwia wyszukiwarce automatyczną zmianę kolejności wyszukiwania w oparciu o efektywne wykorzystanie zasobów i prawdopodobieństwo uzyskania lepszych wyników.
-O3
Przeszukuje bieżący katalog, a także wszystkie podkatalogi X poziomów głęboko
-maksymalna głębokość X
Szukaj niezależnie od wielkości liter
-ja nazywam
Zwraca tylko wyniki, które nie pasują do przypadku testowego
-nie
Przeprowadź wyszukiwanie plików
-typ f
Przeszukaj katalogi
-typ d
4. Znajdź pliki według poleceń Linuksa dotyczących modyfikacji czasu
Polecenie find ma możliwość filtrowania hierarchii katalogów na podstawie ostatniej modyfikacji pliku.
Składnia to:
find / -name "* conf" -mtime 8 find / home / user / -name "* conf" -mtime 2Pierwsze polecenie wyświetli listę wszystkich plików w całym systemie plików, które kończą się znakami conf i zostały zmodyfikowane w ciągu ostatnich 8 dni. Drugie polecenie filtruje katalog domowy użytkownika w poszukiwaniu plików o nazwach kończących się znakami conf i które zostały zmodyfikowane w ciągu ostatnich 2 dni.
Użyj Grepa, aby znaleźć pliki oparte na zawartości Polecenia LinuksaPolecenie find może filtrować hierarchię katalogów tylko na podstawie nazwy pliku i metadanych, więc jeśli chcesz wyszukiwać na podstawie zawartości pliku, użyj narzędzia takiego jak grep.
Użyjemy następującej składni:
znajdować. -type f -exec grep "przykład" '{}' \; -wydrukowaćSpowoduje to znalezienie wszystkich obiektów w bieżącej hierarchii katalogów (.), która jest plikiem (-type f), a następnie uruchomi polecenie grep „przykład” dla każdego pliku, który spełnia warunki. Pasujące pliki są drukowane na ekranie (-print). Nawiasy klamrowe ({}) to symbol zastępczy wyników wyszukiwania. {} jest ujęty w pojedyncze cudzysłowy ('), aby uniknąć renderowania przez grep nieprawidłowej nazwy pliku. Polecenie -exec kończy się średnikiem "(;)", który musi być poprzedzony znakiem "(\;)", aby uniknąć interpretacji przez powłokę.
Jak znaleźć i przetworzyć pliki za pomocą polecenia Find Linux CommandsMożemy użyć opcji -exec, aby uruchomić polecenia na wszystkich obiektach, które pasują do wyrażenia wyszukiwania.
Jego składnia to:
znajdować. -name "rc.conf" -exec chmod o + r '{}' \;Spowoduje to odfiltrowanie wszystkich obiektów w bieżącej hierarchii (.) Dla plików o nazwie rc.conf i uruchomienie polecenia chmod lub + r, aby zmodyfikować uprawnienia wyników wyszukiwania.
Zatem find jest sprzymierzeńcem pełnego wyszukiwania plików w systemie Linux.