Metody płatności Abuse

Polecenie find w systemie Linux

04.03.2023, 02:43

Polecenie find w systemie Linux służy do wyszukiwania plików i katalogów w określonych katalogach na podstawie różnych kryteriów. Polecenie to jest jednym z najpotężniejszych i najbardziej rozpowszechnionych narzędzi w systemie Linux.

Format polecenia

Podstawowy format polecenia find jest następujący:

find [path] [expression]

gdzie:

path to ścieżka do katalogu, w którym mają być wyszukiwane pliki (domyślnie polecenie find przeszukuje bieżący katalog i wszystkie jego podkatalogi);

wyrażenie to wyrażenie definiujące kryteria wyszukiwania plików.

Poniżej przedstawiono niektóre z najczęstszych kryteriów wyszukiwania plików, które mogą być używane w wyrażeniu polecenia find:

-name: wyszukiwanie plików według nazwy. Na przykład:

find /home/user -name myfile.txt

-type: wyszukiwanie plików określonego typu (na przykład f dla plików zwykłych lub d dla katalogów). Na przykład:

find /home/user -type f

-size: wyszukiwanie plików według rozmiaru. Na przykład:

find /home/user -size +10M

-mtime: wyszukiwanie plików według czasu ostatniej modyfikacji. Na przykład:

find /home/user -mtime -7

-user i -group: wyszukiwanie plików według właściciela i grupy. Na przykład:

find /home/user -user bob -group users

Można użyć operatorów logicznych -and, -or i -not, aby połączyć wiele kryteriów wyszukiwania w jedno wyrażenie.

Na przykład poniższe polecenie znajdzie wszystkie pliki w katalogu /home/user, które zostały zmodyfikowane w ciągu ostatnich 7 dni i są większe niż 10 megabajtów:

find /home/user -type f -mtime -7 -size +10M

Polecenie find umożliwia również wykonywanie różnych działań na znalezionych plikach przy użyciu opcji -exec. Na przykład, można usunąć wszystkie pliki, które zostały zmodyfikowane ponad 30 dni temu za pomocą następującego polecenia:

find /home/user -type f -mtime +30 -exec rm {} ;

Tutaj opcja -exec uruchamia polecenie rm dla każdego znalezionego pliku i używa {} do zastąpienia nazwy pliku w poleceniu.

Polecenie find jest potężnym narzędziem do wyszukiwania plików i katalogów w systemie Linux, które może być używane do wykonywania różnych zadań związanych z zarządzaniem.

Dodatkowe opcje

Polecenie find obsługuje wiele innych opcji, które można wykorzystać do dokładniejszego wyszukiwania plików:

-iname: wyszukiwanie plików według nazwy bez względu na wielkość liter. Na przykład:

find /home/user -iname myfile.txt

-regex: wyszukiwanie plików, których nazwy pasują do podanego wyrażenia regularnego. Na przykład:

find /home/user -regex ".*.txt$"

-maxdepth i -mindepth: ograniczają głębokość wyszukiwania plików w podkatalogach. Na przykład:

find /home/user -maxdepth 2 -type f

-prune: wyklucza określone katalogi z wyszukiwania. Na przykład:

find /home/user -path /home/user/excluded -prune -o -type f -print

-print: wypisuje listę znalezionych plików na standardowe wyjście. Na przykład:

find /home/user -type f -print

find obsługuje również wyszukiwanie plików według różnych atrybutów, takich jak uprawnienia, atrybuty plików, etykiety SELinux i inne. Więcej informacji na temat tych opcji można znaleźć w dokumentacji polecenia find.

Polecenie może wyszukiwać pliki i katalogi w całym systemie plików, co może zająć dużo czasu i zasobów. Dlatego ważne jest, aby zachować ostrożność podczas korzystania z tego polecenia i upewnić się, że kryteria wyszukiwania są ustawione poprawnie, aby uniknąć znalezienia niepotrzebnych plików lub błędów w systemie.