Jak znaleźć pliki w systemie Linux?

Opublikowany: 2022-04-07

Spis treści

Wstęp:

Find to narzędzie wiersza poleceń systemu UNIX, które porusza się po hierarchii plików. Możesz go używać do wyszukiwania i operowania na plikach i katalogach. Za pomocą tego polecenia można wyszukiwać pliki, foldery, nazwy, daty utworzenia, daty modyfikacji, właścicieli i uprawnienia.

Możesz dalej łączyć go z opcją ' exec ', aby wykonywać różne działania na wynikach znalezionych przez polecenie find .

W tym artykule dowiemy się, jak znaleźć pliki w Linuksie za pomocą polecenia Znajdź .

Jak działa polecenie Znajdź?

Find lokalizuje pliki na twoim komputerze. Zgodnie z zasadami pierwszeństwa, ocenia każde wyrażenie, od lewej do prawej, w każdym drzewie katalogów określonym przez podane ścieżki. W operacjach AND lub w operacjach OR wynik jest „znany”, gdy lewa strona wyrażenia ma wartość PRAWDA lub FAŁSZ. Znajdź, a następnie przechodzi do następnej ścieżki, aż wszystkie ścieżki zostaną zbadane.

Polecenie find jest najbardziej podstawowym i potężnym narzędziem do pracy z plikami w systemie Linux. Pliki mogą znajdować się samodzielnie lub w połączeniu z innymi programami.

Składnia:

find [options] [path…] [expression]

lub

$ find [where to start searching from]

[wyrażenie określa, co znaleźć] [-opcje] [co znaleźć]

  • Traktowanie dowiązań symbolicznych, opcje debugowania i strategia optymalizacji są kontrolowane przez właściwość options .
  • Właściwość path … określa katalog lub katalogi, z których find będzie szukał plików.
  • Opcje, wzorce wyszukiwania i akcje są oddzielone operatorami w atrybucie wyrażenia .

Opcje:

-exec CMD : przeszukiwany plik, który spełnia powyższe kryteria i zwraca 0 dla pomyślnego zakończenia wykonywania polecenia.

-ok CMD : Podobny do -exec, ale użytkownik jest wcześniej pytany.

-inum N : Poszukaj plików o numerze 'N' w i-węźle.

-links N : Znajdź pliki, które mają 'N' linków.

-name demo : Poszukaj plików o nazwie 'demo' w nazwie pliku.

-newer plik : Poszukaj plików, które zostały zaktualizowane lub utworzone od czasu „plik”.

-perm ósemkowe: Jeśli uprawnienie jest 'ósemkowe', poszukaj pliku.

-print : Drukuj nazwy ścieżek plików zidentyfikowanych przy użyciu pozostałych kryteriów.

-empty : poszukaj plików i folderów, które są puste.

-size +N/-N : Szukaj plików z blokami 'N'; „N”, po którym następuje „c”, może służyć do pomiaru rozmiaru znaków; '+N' oznacza rozmiar > 'N' bloków, a '-N' oznacza rozmiar 'N' bloków.

-user name : Poszukaj plików o nazwie użytkownika 'name' lub ID 'name'.

(wyraż ) : Jeśli 'wyrażenie' jest prawdziwe, to prawda; wykorzystywane do grupowania kryteriów za pomocą OR lub AND.

! wyr : Prawda, jeśli 'wyraż' jest fałszywe.

Wyrażenia:

Opcje (które mają wpływ na ogólne działanie, a nie na przetwarzanie plików i zawsze zwracają prawdę), testy (które zwracają wartość true lub false) i akcje (które mają skutki uboczne i zwracają wartość true lub false) są oddzielone operatorami w wyrażeniu . Gdy operator jest nieobecny, -i jest wywnioskowany.

Jeśli wyrażenie nie zawiera żadnych dodatkowych akcji, to -prune, -print jest stosowane do wszystkich plików, dla których jest prawdziwe.

Na przykład spójrzmy na następujące polecenie jako przykład

find -L /var/www -name "*.js"

  • Opcja -L (opcje) nakazuje poleceniu find podążać za dowiązaniami symbolicznymi.
  • /var/www (ścieżka…) określa katalog , który będzie przeszukiwany.
  • (Wyrażenie) -name "*.js mówi find, aby wyszukiwał pliki kończące się na .js (pliki JavaScript).

Jak znaleźć pliki w Linuksie według nazwy?

Pliki można znaleźć według nazwy za pomocą polecenia find . Możesz wyszukać plik według jego nazwy, używając opcji -name.

find -type f -name functions.php

Jak znaleźć pliki w systemie Linux

użyj -iname zamiast -name, aby uruchomić wyszukiwanie z uwzględnieniem wielkości liter

Jak znaleźć pliki w Linuksie według rozszerzenia

Możesz wyszukiwać pliki według rozszerzenia, tak jak możesz wyszukiwać pliki według nazwy.

find -type f -name '*.php'

aby znaleźć pliki bez podanego rozszerzenia, użyj następującego polecenia

find -type f - not -name '*.php'

Znajdź pliki według typu

Jeśli potrzebujesz znaleźć określony typ pliku, taki jak zwykły plik, katalog lub dowiązanie symboliczne, może być konieczne wyszukanie określonych typów plików. Wszystko w Linuksie to plik.

Określ typ pliku, którego szukasz, używając opcji -type i jednego z następujących deskryptorów:

  • f: zwykły plik
  • d: katalog
  • l: dowiązanie symboliczne
  • c: urządzenia znakowe
  • b: urządzenia blokowe
  • p: nazwany potok (FIFO)
  • s: gniazdo

find public_html/wp-admin/ -type d

Znajdź pliki według rozmiaru

Parametr -size należy przekazać wraz z parametrem size, aby znaleźć pliki na podstawie ich rozmiaru. Do określenia rozmiaru pliku można użyć następujących przyrostków:

  • b: 512 -bajtowe bloki (domyślnie)
  • c: bajty
  • w: słowa dwubajtowe
  • k: kilobajty
  • M: megabajty
  • G: Gigabajty

find . -type f -size -1M

Jeśli chcesz wyszukać pliki o rozmiarze większym niż 1 MB, użyj +

find . -type f -size +1M

Możesz nawet wyszukiwać pliki o określonym rozmiarze

find . -type f -size +1M -size 3M

Znajdź pliki według modyfikacji

Polecenia find można również użyć do wyszukiwania plików na podstawie czasu ich ostatniej modyfikacji, dostępu lub zmiany.

Użyj znaków plus i minus dla „więcej niż” i „mniej niż”, tak samo jak podczas wyszukiwania według rozmiaru.

find . -mtime +30 -daystart

Znajdź według uprawnień

Możesz użyć opcji -perm, aby wyszukać pliki na podstawie ich uprawnień.

find public_html/wp-admin/css -perm /444

/ jest używany jako przedrostek, to przynajmniej kategoria musi mieć przynajmniej odpowiedni ustawiony bit, aby plik był zgodny.

-prefiks, to muszą być ustawione przynajmniej określone bity.

Znajdź według właściciela

Użyj parametrów -user i -group, aby znaleźć pliki należące do określonego użytkownika lub grupy.

find -user testc7963

Wniosek

Pokazaliśmy, jak zastosować polecenie find z różnymi kryteriami i argumentami.
Ten artykuł powinien zapewnić podstawową wiedzę na temat znajdowania plików na komputerach z systemem Linux.