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.
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.
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.