Komputery ze współczesnym światem

Używanie narzędzia Znajdź i zlokalizuj do znajdowania plików na serwerze z systemem Linux. Wyszukiwanie plików w systemie Linux Jak znaleźć plik w systemie Linux

Jeśli często pracujesz w wierszu poleceń na komputerze lub serwerze, na którym w ogóle nie ma powłoki graficznej, prędzej czy później staniesz przed zadaniem wyszukiwania plików. Na szczęście Linux ma już wbudowane polecenie, które pozwala znaleźć plik w systemie.

Dzisiaj porozmawiamy o używaniu polecenia znajdź - uwierz mi, powinieneś nauczyć się pracować z tym potężnym i wygodnym narzędziem.

Jak używać polecenia znajdź

Mówiąc prościej, podstawowa składnia polecenia find jest następująca:

Znajdź /ścieżka opcji nazwa pliku

Zbadajmy możliwości zespołu

Wyszukiwanie pliku według nazwy

Pierwszym parametrem jest ścieżka. Jeśli nie masz pojęcia, gdzie może ukrywać się plik, wstaw / zamiast ścieżki - to wystarczy. Jednak przeszukiwanie całego dysku może być dość czasochłonne, a jeśli wiesz, gdzie może znajdować się plik, określ folder, w którym chcesz rozpocząć wyszukiwanie (na przykład ~, aby wyszukać w folderze domowym użytkownika).

Przejdźmy teraz do opcji wyszukiwania. Istnieją dwie opcje wyszukiwania pliku według nazwy:

  • nazwa — wyszukiwanie nazwy pliku z uwzględnieniem wielkości liter
  • iname - wyszukiwanie nazwy pliku bez uwzględniania wielkości liter

Trzeba pamiętać, że w Linuksie wielkość liter ma znaczenie, a jeśli trzeba znaleźć np. plik Ubuntu.txt, to poniższe polecenie nie da żadnych rezultatów:

Znajdź / -nazwij ubuntu.txt

Ale możesz użyć polecenia iname i przeprowadzić wyszukiwanie bez uwzględniania wielkości liter:

Znajdź / -iname ubuntu.txt

Szukaj według typu

Polecenie find umożliwia wyszukiwanie nie tylko plików. Oto typy deskryptorów obsługiwane przez wyszukiwanie:

  • f - zwykły plik
  • d - katalog
  • l - dowiązanie symboliczne
  • c - urządzenie znakowe
  • b - urządzenie blokowe

Na przykład, aby wyszukać wszystkie katalogi w katalogu domowym bieżącego użytkownika, które zaczynają się od „config”, uruchom następujące polecenie:

Znajdź ~ -type d -name config*

Wyprowadzanie wyników wyszukiwania do pliku

Wygodna funkcja wyprowadzania wyniku polecenia do pliku będzie niezwykle przydatna, jeśli wyników wyszukiwania jest dużo lub zachodzi potrzeba późniejszej pracy z nimi. Na przykład, aby zapisać listę wszystkich znalezionych plików konfiguracyjnych do pliku conf_search, uruchom następujące polecenie:

Znajdź /etc -type f -name „*.conf” > conf_search

Znajdź pliki według rozmiaru

Jest to bardzo przydatny parametr, gdy kończy się miejsce na dysku i musisz zrozumieć, gdzie się podziało. Na przykład, aby znaleźć pliki większe niż 1000 MB, uruchom następujące polecenie:

Znajdź / -rozmiar +1000M

Możesz użyć następujących skrótów:

  • c - bajty
  • k - kilobajty
  • M - megabajty
  • G - gigabajty
  • b - bloki po 512 bajtów

To tylko kilka sposobów wykorzystania potężnego zespołu. Więcej sposobów można znaleźć w instrukcji, uruchamiając polecenie

znajdź polecenie w systemie Linux/FreeBSD. znajdź składnię polecenia.

Znajdź składnię polecenia:

# znajdź [ścieżka] [opcje] [opcje wyszukiwania] [akcje na plikach]

Ścieżka- gdzie szukać plików, możesz skorzystać z listy ścieżek oddzielonych spacją.

Opcje- zaczynając od znaku „-”, po którym następuje nazwa opcji:
-D Przeszukiwanie podkatalogów przed przeszukaniem samego katalogu
-L Podążaj za dowiązaniami symbolicznymi podczas wyszukiwania
-maxgłębokość N Podczas wyszukiwania sprawdzaj nie więcej niż N poziomów zagnieżdżonych katalogów
-mingłębokość N Nie skanuj zagnieżdżonych katalogów poziomu N lub niższego
-uchwyt Nie przeszukuj katalogów innych systemów plików

opcje wyszukiwania

-czas N Ostatni dostęp do pliku uzyskano N dni temu
-mczas N Plik był ostatnio modyfikowany N dni temu
-nazwa Szablon Nazwa pliku (szablon nazwy) bez ścieżki. Zaleca się, aby zawsze umieszczać szablon w cudzysłowach
-rozmiar [±]N Rozmiar pliku to N bloków, jeśli podano +N, to rozmiar pliku jest większy niż N, -N jest mniejsze. Znak po N wskazuje rozmiar bloku. b - 512 bajtów, c - bajt, w - 2 bajty, k - kilobajt, M - megabajt, G - gigabajt.
-type N Plik typu N. Najczęściej używane wartości dla N to: d dla katalogu, f dla pliku.
-użytkownik Nazwa użytkownika Plik jest własnością użytkownika o nazwie Nazwa użytkownika.

Przykłady użycia polecenia find z parametrami:

# znajdować . -wpisz f -nazwa "~*" -wydrukuj

Znajdź w bieżącym katalogu zwykłe pliki (nie katalogi), których nazwy zaczynają się od znaku „~”.

# znajdować . -nowszy plik.bak -wpisz f -wydrukuj

Znajdź pliki w bieżącym katalogu, które zostały zmodyfikowane później niż plik file.bak.

Operatorzy
Kryteria można łączyć za pomocą operatorów. Poniżej przedstawiono operatory w porządku malejącym według ich pierwszeństwa.

Forma skrócona Forma długa Opis
!criteria -not Negation (zwraca true, jeśli kryterium jest fałszywe)
kryterium1 -kryterium2 -i operator AND (prawda, jeśli kryterium1 i kryterium2 są prawdziwe)
kryterium1-o kryterium2 -lub operator OR (prawda, jeśli kryterium1 lub kryterium2 jest prawdziwe)

Ogólnie rzecz biorąc, podczas używania operatorów kryteria są sprawdzane w kolejności ich pierwszeństwa. Możesz zmienić kolejność za pomocą nawiasów. Nawiasy muszą być oddzielone ukośnikiem odwrotnym.

Znajdź przykłady poleceń z użyciem operatorów

#znajdować . \(-nazwa "%*" -lub -nazwa "temp*" \) -typ f -print

Znajdź pliki w bieżącym katalogu, które zaczynają się od znaku „%” lub c „temp” i są plikami ( -typ f), a nie katalogi.

# znajdować . -maxdepth 1 \(\(-size +600M -and -size -1G \) -or -name "*.mpeg" \) -and -type f

Znajdź w bieżącym katalogu (bez przetwarzania podkatalogów - -maxdeph 1) zwykłe pliki ( -plik f) większe niż 600 MB i mniejsze niż 1 GB (-size) lub pliki, których nazwa kończy się na „.mpeg” (-name).

Akcje na plikach
Po wykonaniu polecenia find można wykonywać różne działania na znalezionych plikach. Rozważmy główne.

Wykonaj polecenie \; - Wykonaj polecenie. Zauważ, że po poleceniu następuje odwrotny ukośnik i średnik.
-execdir polecenie \; - To samo co exec, ale polecenie jest wywoływane z podkatalogu zawierającego bieżący plik.
-ok polecenie \; - To samo co exec, ale przed przetworzeniem następnego pliku zostaniesz poproszony o wykonanie polecenia.
-okdir polecenie \; -Tak samo jak ok dla execdir.
-print - Wyświetla nazwę pliku na ekranie.
-ls — Uruchom polecenie ls -dils na bieżącym pliku.

W uruchamianych poleceniach możesz użyć parametr () jako argument, który jest zastępowany ścieżką do bieżącego pliku.

Znajdź przykłady poleceń za pomocą akcji

# znajdować . -rozmiar +1000c -wpisz f -ls

Znajdź zwykłe pliki większe niż 1000 bajtów w bieżącym katalogu i wykonaj na nich polecenie ls -dils (akcja ls).

# znajdować . -nazwa "~*" -wpisz f -ok rm () \;

Znajdź zwykłe pliki w bieżącym katalogu, które zaczynają się od znaku tyldy „~”, i dla każdego pliku wyślij żądanie usunięcia (aby wykonać polecenie rm).

PRZYKŁADY:

Znajdź pliki według ich rozmiaru

# znajdź /var/log -name "*.log" -and \(-size +1k -and -size -1000k \) -and -type f -print

Pliki z rozszerzeniem *.log o rozmiarze od 1kb do 1000kb zostaną znalezione i wyświetlone

Wyszukaj pliki według ich właściciela i grupy

To polecenie znajdzie wszystkie pliki, które nie mają właściciela

Opcje -użytkownik Lub -uid umożliwiają wyszukiwanie plików według identyfikatora użytkownika (UID) i nazwy użytkownika oraz parametru -Grupa według nazwy grupy.

# znajdować . -nazwa "*.log" -użytkownik główny -grupa główna

Znajduje wszystkie pliki w bieżącym katalogu z dziennikiem rozszerzeń użytkownika root i grupy root

# znajdź -użytkownik główny -o -użytkownik www

Znajduje wszystkie pliki użytkownika root lub www

Korzystanie z wyrażeń regularnych

Pożytek znajdować obsługuje wyrażenia regularne. Weźmy od razu przykład. Powiedzmy, że chcę znaleźć wszystkie pliki, których rozszerzenia to .php lub .js. Mógłbym to zrobić tak:

# find -regextype posix-egrep -regex ".*(php|js)$"

Wygląda to trochę skomplikowanie, prawda? Jako odparcie wskazujemy, że zastosowana tutaj składnia to egrep (-regextype posix-egrep), a następnie określa wyrażenie regularne używane do wyszukiwania. Wyrażenie zaczyna się i kończy pojedynczymi cudzysłowami, aby sama powłoka nie próbowała analizować wyrażenia regularnego. Następnie pojawia się wyrażenie.*, które używa symbolu wieloznacznego pasującego do dowolnego znaku lub zestawu znaków. Część (php|js) każe szukać php lub js. Potok (|) w tym wyrażeniu pasuje do wyrażenia logicznego „lub”. Wreszcie znak dolara ($), który kończy wyrażenie, wskazuje, że szukamy tych rozszerzeń na końcu nazwy pliku. Więc jeśli masz plik o nazwie js.txt, nie będzie on pasował do kryteriów wyszukiwania.

Praca z czasem
Narzędzie wyszukiwania ma wszystko, czego potrzebujesz, aby wyszukiwać według czasu użycia pliku. Możesz wyszukiwać według czasu dostępu ( -czas), albo do czasu ostatniej modyfikacji pliku (-mtime), albo do czasu ostatniej modyfikacji ( -cczas).

Na przykład znajdźmy wszystkie pliki, które nie były modyfikowane w ciągu ostatnich dwóch dni:

# znajdź -mczas +2

Jeśli chcesz wyszukać pliki w określonym zakresie, możesz połączyć opcje. Więc znajdź -mtime +2 -mtime -5 oznaczałoby „dwa lub więcej dni temu, ale nie więcej niż pięć dni temu”.

Praca z minutami
Czasami trzeba szukać plików zmodyfikowanych w ciągu ostatniego dnia, a poprzednie opcje wyszukiwania nie są w tym przypadku zbyt dokładne. Narzędzie find jest dobre, ponieważ ma również parametry -jestem w, -cm min I -mmin, które są podobne do wcześniej omówionych opcji, ale używają minut, a nie dni. Jeśli więc chcesz zobaczyć, które pliki były modyfikowane lub otwierane ostatniego dnia, możesz skorzystać z tych opcji.

Ograniczenia wyszukiwania
Czasami narzędzie wyszukiwania dostarczy więcej wyników niż potrzebujesz. Możesz ograniczyć wyniki wyszukiwania zwracane przez narzędzie find, określając parametr maksymalna głębokość. Na przykład, jeśli chcesz znaleźć wszystkie pliki JavaScript w katalogu WordPress, możesz użyć następującego polecenia:

# znajdź wordpress -nazwa "*js"

Ale co, jeśli chcesz zobaczyć tylko pliki JavaScript, które znajdują się w katalogu najwyższego poziomu? Możesz ograniczyć wyszukiwanie za pomocą parametru -maksymalna głębokość:

# znajdź wordpress -maxgłębokość 1 -nazwa "*js"

Wyszukiwanie zostanie przeprowadzone tylko w katalogu WordPress, a nie w podkatalogach. Jeśli zmienisz wartość -maksymalna głębokość o 2, przeszuka podkatalogi katalogu WordPress, ale nie głębsze podkatalogi.

Łączenie narzędzia find z innymi poleceniami
Teraz, gdy znalazłeś pliki, których szukasz, co zamierzasz z nimi zrobić? Możesz użyć parametrów w narzędziu wyszukiwania xargs Lub -wykon, które umożliwiają określenie działań podejmowanych na plikach po ich znalezieniu.

Powiedzmy, że chcesz zmienić właściciela pliku z roota na www-data dla dużej liczby plików jednocześnie. Znalezienie wszystkich tych plików to tylko pierwszy krok, musisz także zmienić właściciela pliku. Zrób to ręcznie, zgodnie z listą zwróconą przez narzędzie znajdować, bardzo pracochłonne. Dlatego, aby zmienić własność plików, możesz chcieć użyć -wykon:

# znajdź -user root -exec chown www-data () \;

Linux ma bardzo potężne i przydatne polecenie do wyszukiwania plików - polecenie znajdować. Posiada wiele funkcji wyszukiwania plików, jednak czasami sprawia trudności początkującym, głównie ze względu na swoją składnię.

Prosty przykład użycia polecenia find

Zacznijmy od prostego przykładu użycia polecenia find do wyszukania na komputerze plików o nazwie config . Będziemy szukać plików konfiguracyjnych zaczynając od katalogu / root. Aby to zrobić, musisz uruchomić polecenie jako root, aby mieć wystarczające prawa dostępu, w przeciwnym razie otrzymasz komunikat „Odmowa uprawnień”. Uruchommy więc polecenie:

Znajdź / -nazwa config -print

Polecenie ma następujące znaczenie: wyszukaj pliki o nazwie config (-name config), zaczynając od katalogu / (pierwszy parametr polecenia find) i wypisz nazwy plików na ekran (argument -print). Zauważam, że wyszukiwanie jest rekurencyjne, to znaczy podczas wyszukiwania przeglądane są wszystkie zagnieżdżone katalogi. Jak widać, wszystko jest proste. Przyjrzyjmy się teraz składni polecenia i przejdźmy do przeglądu jego głównych argumentów.

znajdź składnię polecenia

Ogólna składnia polecenia find, którą można znaleźć w podręczniku, może nie wydawać się całkiem prosta, więc podam bardziej czytelną:

Znajdź [ścieżka] [opcje] [kryteria wyszukiwania] [akcje plików]

Ścieżka

Jako ścieżki wyszukiwania można używać zarówno ścieżek bezwzględnych, jak i względnych, a także rozdzielanej spacjami listy ścieżek.

Opcje

Opcje polecenia Znajdź są określane, zaczynając od znaku „-”, po którym następuje nazwa opcji. Rozważ główne opcje.

Kryteria wyszukiwania

Polecenie find może mieć wiele kryteriów wyszukiwania (zwanych także testami). Każde kryterium jest określonym warunkiem testowym, który zwraca wartość true lub false . Można to porównać do warunków instrukcji if w programowaniu. Gdy każdy plik jest przetwarzany, polecenie find sprawdza po kolei każde kryterium, a jeśli każde kryterium zwróci false , polecenie find przechodzi do następnego pliku. Istnieje kilka kryteriów dla polecenia find, przyjrzymy się tylko kilku z nich.

-czas NOstatni dostęp do pliku uzyskano N dni temu.
-mczas NPlik był ostatnio modyfikowany N dni temu.
-wzór nazwyNazwa pliku (wzorzec nazwy) bez ścieżki. Zaleca się, aby wzór zawsze umieszczać w cudzysłowie.
-nowszy inny_plikPlik został zmodyfikowany później niż inny_plik.
-rozmiar [±] NRozmiar pliku to N bloków, jeśli określono +N, to rozmiar pliku jest większy niż N , -N jest mniejsze. Znak po N wskazuje rozmiar bloku. b - 512 bajtów, c - bajt, w - 2 bajty, k - kilobajt, M - megabajt, G - gigabajt.
-typ CTyp pliku C. Najczęściej używane wartości dla C to: d to katalog, f to plik.
-użytkownik Nazwa użytkownikaPlik jest własnością użytkownika o nazwie Nazwa użytkownika.

Znajdź przykłady poleceń za pomocą kryteriów

Znajdź w bieżącym katalogu zwykłe pliki (nie katalogi), których nazwy zaczynają się od znaku „~”.

znajdować. -wpisz f -nazwa "~*" -wydrukuj

Znajdź pliki w bieżącym katalogu, które zostały zmodyfikowane później niż plik file.bak .

znajdować. -nowszy plik.bak -wpisz f -wydrukuj

Operatorzy

Kryteria można łączyć za pomocą operatorów. Poniżej przedstawiono operatory w porządku malejącym według ich pierwszeństwa.

Ogólnie rzecz biorąc, podczas używania operatorów kryteria są sprawdzane w kolejności ich pierwszeństwa. Możesz zmienić kolejność za pomocą nawiasów. Nawiasy muszą być oddzielone ukośnikiem odwrotnym.

Znajdź przykłady poleceń z użyciem operatorów

Znajdź pliki w bieżącym katalogu, które zaczynają się od znaku „~” lub c „temp” i są zwykłymi plikami (-type f), a nie katalogami.

znajdować. \(-nazwa "~*" -lub -nazwa "temp*" \) -typ f -print

Znajdź w bieżącym katalogu (bez przetwarzania podkatalogów - -maxdeph 1) zwykłe pliki (-file f) większe niż 600 megabajtów i mniejsze niż 1 gigabajt (-size) lub pliki, których nazwy kończą się na „.mpeg” (-name).

znajdować. -maxdepth 1 \(\(-size +600M -and -size -1G \) -or -name "*.mpeg" \) -and -type f

Akcje na plikach

Po wykonaniu polecenia find można wykonywać różne działania na znalezionych plikach. Rozważmy główne.

W poleceniach wykonywalnych można użyć opcji () jako argumentu, który jest zastępowany ścieżką do bieżącego pliku.

Znajdź przykłady poleceń za pomocą akcji

Znajdź zwykłe pliki większe niż 1000 bajtów w bieżącym katalogu i wykonaj na nich polecenie ls -dils (akcja ls).

znajdować. -rozmiar +1000c -wpisz f -ls

Znajdź zwykłe pliki w bieżącym katalogu, które zaczynają się od znaku tyldy „~”, i dla każdego pliku wyślij żądanie usunięcia (aby wykonać polecenie rm).

znajdować. -nazwa "~*" -wpisz f -ok rm () \;

Wniosek

W tym poście omówiliśmy bardzo ważne i przydatne polecenie linuksowe find, które zapewnia niemal nieograniczone możliwości wyszukiwania plików według wielu kryteriów i wzorców. A za pomocą poleceń (akcji) możesz wyszukiwać pliki i wykonywać na nich dowolne operacje.

Problem ze znalezieniem odpowiednich plików lub folderów był, jest i zawsze będzie istotny. Ludzie ciągle zapominają, gdzie dokładnie zapisali wymagany plik Crap.doc lub Super Music.mp3. Dlatego niezależnie od systemu operacyjnego wyszukiwanie plików lub katalogów zawsze będzie pożądane, nawet w systemie Linux, Windows lub MacOS X. Po prostu narzędzia wyszukiwania będą inne. Wyszukiwanie w Linuksie można podzielić na dwie kategorie: graficzne i oparte na konsoli. Zacznijmy od dumy wszystkich luniksoidów - z Terminalu. Do wyszukiwania w Linuksie jest wspaniały program o nazwie znajdować.
Znajdź format polecenia:
znajdź ścieżkę do katalogu, w którym chcesz przeszukać -opcje (przełączniki)
gdzie ścieżka jest katalogiem do przeszukania. Możesz określić następujące ścieżki:

. – wyszukaj w bieżącym katalogu;
/ – wyszukaj z katalogu głównego, tj. w całym systemie;
~ - przeszukaj swój katalog domowy.
Chociaż ścieżka oczywiście może i będzie inna. U góry wskazane są tylko standardowe ścieżki.

Tak więc najważniejsze opcje polecenia find wyglądają następująco:
nazwa- wyszukaj pliki według nazwy;
użytkownik- wyszukaj pliki należące do określonego użytkownika;
Grupa— wyszukaj pliki należące do określonej grupy;
trwała ondulacja— wyszukaj pliki z określonym trybem dostępu;
typ— wyszukaj pliki pewnego typu.

Wystarczą też typy:

  • b jest specjalnym plikiem blokowym;
  • d - katalog;
  • c jest plikiem ze znakami specjalnymi;
  • f jest zwykłym plikiem;
  • l - dowiązanie symboliczne;
  • p - nazwana rura;
  • s jest gniazdem.

Rozmiar n - wyszukaj pliki, których rozmiar wynosi n jednostek;
-mtime -n +n - wyszukaj pliki, które zmieniły swoją zawartość mniej niż (-) lub więcej niż (+) dni temu.

A teraz kilka przykładów użycia polecenia find.
Najczęściej używaną opcją jest -nazwa, która wyszukuje pliki według nazwy.
Na przykład polecenie:

znajdź ~ Nazwa muzyki „*.mp3”

wyszuka wszystkie pliki (symbol *) z rozszerzeniem .mp3 w folderze Muzyka w katalogu domowym.

znajdź / -nazwa "*.pdf"

To polecenie wyszuka pliki .pdf we wszystkich katalogach, do których masz dostęp. Jeśli program nie może wejść do niektórych katalogów systemowych, ostrzeże Cię o tym. A jeśli nadal musisz przeglądać wszystkie katalogi w całości, użyj uprawnień administratora:

sudo znajdź / -nazwa "*.pdf"

znajdź ~ -nazwa "Zdjęcie*"

wyświetli listę plików w katalogu domowym zaczynających się od liter Foto.

Opcja `-name' rozróżnia wielkie i małe litery; aby zignorować te kryteria podczas wyszukiwania, musisz użyć opcji '-iname'. Następnie program znajdzie wszystkie pliki, które będą składać się z liter: Foto, Foto lub FOTO.

Jeśli chcesz, aby wynik wyszukiwania został zapisany do pliku tekstowego, to polecenie przybierze następującą postać:

znajdź ~ -nazwa "Foto*" > Results.txt

Jeśli znasz pełną nazwę pliku, polecenie brzmiałoby:

znajdź / -nazwa .profil

W takim przypadku ukryty plik .profile zostanie przeszukany w całym systemie.

Możesz wyszukać plik, jeśli znana jest część jego nazwy. W tym przypadku polecenie brzmiałoby:

znajdź /home/dm/Muzyka/Klipy/ -nazwa "*uniform*"

Jeśli chcesz znaleźć pliki, które zaczynają się od określonych liter (na przykład od a do c), w takim przypadku lepiej jest użyć wyrażeń regularnych, z którymi bardzo wygodnie się pracuje:

znajdź / -nazwa "*"

To polecenie znajdzie wszystkie pliki w twoim systemie, które zaczynają się od liter od a do c.

Wyszukiwanie plików z określonymi trybami dostępu

Jeśli chcesz znaleźć pliki, które mają określone tryby dostępu, opcja -perm może ci w tym pomóc. Na przykład znajdźmy pliki o trybie dostępu równym 775 i znajdujące się w bieżącym katalogu:

znajdować. -perm 775

Wyszukaj pliki według użytkownika lub grupy.

Aby znaleźć plik należący do określonego użytkownika, wystarczy uruchomić następujące polecenie:

znajdź / -użytkownik komp

To polecenie znajdzie pliki w systemie, które są własnością użytkownika comp.
Aby znaleźć pliki należące do określonej grupy (na przykład grupa2), uruchom polecenie:

znajdź / -grupuj grupę2

Aby znaleźć pliki dla nieistniejących użytkowników lub grup, użyj opcji -nouser i -nogroup:

znajdź / -nuser

znajdź / -brak grupy

Wyszukaj pliki określonego typu

Polecenie find ma jeszcze jedną przydatną funkcję, może znaleźć pliki określonego typu. Aby to zrobić, użyj klucza -type. Znajdź dowiązania symboliczne w katalogu /etc:

znajdź /etc -wpisz l

Znajdź listę katalogów znajdujących się w folderze /mnt/raid

znajdź /mnt/raid -type d

Wyszukaj pliki według rozmiaru.

Przełącznik -size pozwala znaleźć pliki o wymaganym rozmiarze.

znajdować. -rozmiar 2000 tys

To polecenie znajdzie i wyświetli pliki o rozmiarze 2 megabajtów, które znajdują się w bieżącym katalogu. A jeśli na przykład musisz znaleźć pliki o rozmiarze mniejszym niż 500 kilobajtów, w tym przypadku polecenie będzie wyglądać następująco:

znajdować. -rozmiar -500 tys

Jeśli chcesz znaleźć pliki o rozmiarze większym niż 900 megabajtów, polecenie będzie wyglądać następująco:

znajdź / -rozmiar +900M

Wyszukiwanie plików za pomocą przełącznika -mtime

Przełącznik -mtime pozwala znaleźć pliki, które zmieniły się w określonym czasie.
Załóżmy na przykład, że mamy zadanie znalezienia plików w folderze /home/dm/Video, które uległy zmianie w ciągu ostatnich 10 dni.

znajdź /home/dm/Video -mczas +10

Jeśli potrzebujesz czegoś przeciwnego, na przykład, aby znaleźć pliki, które nie zmieniły się przez tydzień, polecenie brzmiałoby:

znajdź /home/dm/Video -7

W następnym artykule napiszę o graficznych narzędziach wyszukiwania w systemie Ubuntu Linux.

Polecenie find jest jednym z najbardziej użytecznych i ważnych poleceń w systemie Linux.
Jest instalowany domyślnie i jest dostępny w prawie wszystkich wersjach systemu Linux. Linux przechowuje wszystko jako pliki i oczywiście warto wiedzieć, jak znaleźć te pliki.

Polecenie find umożliwia wyszukiwanie interesujących plików przy użyciu szeregu kryteriów wyszukiwania. Kryteria można określić razem lub osobno, a następnie wykonać działania z wynikiem. W tym samouczku opiszemy polecenie find z przykładami użycia.

1) Wyświetl listę wszystkich plików w bieżącym katalogu i jego podkatalogach

Aby wyświetlić listę wszystkich plików w bieżącym katalogu i jego podkatalogach, możemy użyć:

Alternatywnie możemy również użyć „znajdź . ' , co da ci ten sam wynik.

2) Znajdź wszystkie pliki i katalogi w bieżącym katalogu roboczym

Jeśli chcesz znaleźć tylko katalogi, możesz użyć:

$ znajdź . -typ D

Aby znaleźć tylko pliki, a nie katalogi:

$ znajdź . -typ f

3) Wyświetl listę wszystkich plików w określonym katalogu

Aby znaleźć pliki w określonym typie katalogu:

$ znajdź /root

To polecenie wyszuka wszystkie pliki w katalogu /root.

4) Znajdź plik według nazwy w katalogu

Aby wyszukać plik według nazwy w określonym katalogu, wpisz:

$ znajdź /root -nazwa „linuxtechi.txt”

To polecenie wyszuka plik linuxtechi.txt w katalogu /root. Znajdziemy również wszystkie pliki z rozszerzeniem .txt:

$ znajdź /root -nazwa "*.txt"

5) Znajdź plik w wielu katalogach

Aby wyszukać pliki w wielu katalogach, wpisz:

$ znajdź /root /etc -nazwa „linuxtechi.txt”

Za pomocą tego polecenia możemy wyszukać plik linuxtechi.txt w katalogach /root i /etc.

Za pomocą tego polecenia możemy znaleźć plik linuxtechi.txt w katalogach / root i / etc.

6) Znajdź plik według nazwy, bez uwzględniania wielkości liter

Wyszukuj pliki bez uwzględniania wielkości liter za pomocą opcji -iname:

$ find /root -iname "Linuxtechi.txt"

W rezultacie otrzymasz wszystkie pliki o nazwie linuxtechi.txt. W takim przypadku może istnieć kilka plików, ponieważ linuxtechi.txt będzie równy LINUXTECHI.txt .

7) Znajdź wszystkie typy plików inne niż wymienione

Powiedzmy, że chcemy znaleźć wszystkie pliki inne niż określony typ pliku. Aby to osiągnąć, wpisz:

$ znajdź /root -not -name "*.txt"

8) Znajdź pliki według wielu funkcji

Podczas wyszukiwania plików możemy łączyć więcej niż jeden warunek. Załóżmy, że potrzebujemy plików z rozszerzeniami .txt i .html:

$ znajdź . -regex ".*\.\(txt\|html\)$"

9) Znajdź pliki, używając warunku LUB

Możemy również połączyć kilka kryteriów wyszukiwania, co doprowadzi do wyszukiwania plików na podstawie spełnienia jednego z warunków. Odbywa się to za pomocą operatora OR:

$ znajdź -nazwa "*.txt" -o -nazwa "linuxtechi*"

10) Znajdź pliki na podstawie uprawnień

Aby znaleźć pliki z określonymi uprawnieniami, użyj opcji -perm:

$ znajdź /root -type f -perm 0777

11) Znajdź wszystkie ukryte pliki

Aby wyszukać ukryte pliki w katalogu, wpisz:

$ znajdź ~ -wpisz f nazwa ".*"

12) Znajdź wszystkie pliki z SGID

Aby wyszukać pliki z bitami SGID, uruchom polecenie:

$ znajdź . -perm /g=s

13) Znajdź wszystkie pliki z SUID

Aby wyszukać pliki z bitami SUID, użyj:

$ znajdź . -perm /u=s

14) Znajdź wszystkie pliki wykonywalne

Aby wyszukać tylko pliki wykonywalne, wpisz:

$ znajdź . -perm /a=x

15) Znajdź pliki tylko do odczytu

Ponadto możesz znaleźć pliki tylko do odczytu za pomocą polecenia find:

$ znajdź /root -perm /u=r

16) Znajdź wszystkie pliki użytkownika

Aby wyszukać pliki dla określonego użytkownika, użyj następującego polecenia:

$ znajdź . -użytkownik linuxtech

17) Znajdź wszystkie pliki grup

Aby wyszukać pliki z określonej grupy, użyj:

$ znajdź . -grupa Apache

18) Znajdź wszystkie pliki o określonym rozmiarze

Jeśli chcemy wyszukać, którego rozmiar znamy, możemy użyć -size:

$ znajdź / -rozmiar -2M

19) Znajdź wszystkie pliki w różnych rozmiarach

Jeśli szukamy pliku, którego rozmiaru nie znamy, ale znamy jego przybliżony rozmiar, lub po prostu chcemy wybrać pliki w określonym zakresie rozmiarów, to możemy wpisać:

$ znajdź / -rozmiar +2M -rozmiar -5M

Możesz użyć poleceń find podczas wyszukiwania plików cięższych niż na przykład 50 MB:

$ znajdź / -rozmiar +50M

20) Znajdź pliki zmodyfikowane N dni temu

Na przykład chcemy zlokalizować wszystkie pliki, które zostały zmodyfikowane 8 dni temu. Możemy to osiągnąć za pomocą opcji „-mtime” w poleceniu find

Na przykład możemy wykryć wszystkie pliki edytowane 8 dni temu. Odbywa się to za pomocą polecenia -mtime:

$ znajdź / -mczas 8

21) Znajdź pliki, do których uzyskano dostęp N dni temu

Możesz znaleźć pliki, które zostały dołączone 8 dni temu za pomocą opcji -atime:

$ znajdź / - czas 8

22) Znajdź wszystkie puste pliki i katalogi

Aby znaleźć wszystkie puste pliki w systemie, wpisz:

$ znajdź / -wpisz f -puste

Aby wyświetlić ich katalogi:

$ znajdź ~/ -wpisz d -puste

23) Znajdź największe i najmniejsze pliki

Aby wyświetlić listę największych lub najmniejszych plików, używamy find w połączeniu z sort , a jeśli musimy wyświetlić 3 „najbardziej najbardziej”, używamy również head .

Aby wyświetlić trzy pliki z bieżącego katalogu, wpisz:

$ znajdź . -type f -exec ls -s () \; | sortuj -n -r | głowa-3

Podobnie możemy wyświetlić najmniejsze pliki w bieżącym katalogu:

$ znajdź . -type f -exec ls -s () \; | sortuj -n | głowa-3

24) Znajdź wszystkie pliki z określonymi uprawnieniami i zmień je na 644 (lub coś innego)

Polecenie find może oferować zaawansowane przypadki użycia. Na przykład możemy zmienić wszystkie uprawnienia 644 niektórych plików na 777. W tym celu wykonujemy:

$ znajdź / -typ f -perm 644 -print -exec chmod 777 () \;

25) Znajdź wszystkie pliki spełniające określone kryteria i usuń je

Wcześniej czy później może być konieczne usunięcie niektórych plików. Jeśli tak się stanie, wprowadź:

$ find / -type f -name "linuxtechi.*" -exec rm -f () \;

Powyższe przykłady doskonale pokazują moc polecenia find, które może znacznie uprościć zadanie wyszukiwania plików.

Podobne posty