Jak znaleźć pliki w systemie Linux?
Opublikowany: 2022-04-07Spis 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 .
-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.
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

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.