Znak . określa bieżący katalog a znak .. katalog nadrzędny. Argument -print wyświetla plik i foldery z użyciem separatora \n. -print0 używa separatora \0.
find . -print
-iname ignoruje wielkość liter
find . -iname “plik*” -print
Operator -a i -and pozwala wykonać logiczną operację AND, natomiast opcje -o i -or umożliwiają wykonanie logicznej operacji OR
find . \( -name “*.txt” -o -name “*.pdf” \) -print
Polecenie wykorzystuje operator -and do znalezienia tylko plików rozpoczynających się na literę s, w którym występuje także e
find . \( -name “*e*” -and -name “s* \)
Wyrażenia regularne
find . -regex ‘.*\.(\py\|sh\)$’
Ograniczenie poziomu zagnieżdżenia -maxdepth i -mindepth
Wyświetlenie wszystkich plików, których nazwa rozpoczyna się od litery p i które w odniesieniu do bieżącego katalogu są położone co najmniej dwa podkatalogi niżej, użyj:
find . -mindepth 2 - name “p*” -print
Wyświetl listę wyłącznie katalogów z uwzględnieniem katalogów podrzędnych
find . -type d -print
Wyświetla listę plików
find . -type f -print
Wyświetla listę dowiązań symbolicznych
find . -type l -print
Typy plików Argument
Zwykły plik f
Dowiązanie symboliczne l
Katalog d
Specjalne urządzenie znakowe c
Urządzenie blokowe b
Gniazdo s
Kolejka FIFO p
Wyszukiwanie oparte na czasie powiązanym z plikami
Czas dostępu – ostatni znacznik czasu, który określa, kiedy plik został użyty przez danego użytkownika
-atime
Czas modyfikacji – ostatni znacznika czasu, który określa, kiedy plik został zmodyfikowany
-mtime
Czas zmiany – ostatni znacznik czasu, który określa, kiedy zostały zmodyfikowane metadane pliku np. uprawnienia lub prawo właściciela
-ctime
Opcje te mogą być określone z wartoścami całkowitymi identyfikuącymi liczbę dni. Tym wartościom często towarzyszą znaki – lub +. Znak – minus oznacza mniejsze niż, natomiast znak + większe niż
Wyświetl wszystkie pliki, do których dostęp został uzyskany w ciągu ostatnich 7 dni
find . -type f -atime -7 -print
Wyświetl wszystkie pliki, do których dostęp został uzyskany dokładnie 7 dni temu
find . -type f -atime 7 -print
Wyświetl wszystkie pliko do których dostęp został uzyskany ponad 7 dni temu
find .-type f -atime +7 -print
Parametry oparte na czasie, które mierzone są w minutach
Czas dostępu
-admin
Czas modyfikacji
-mmin
Czas zmiany
-cmin
Wyświetlenie wszystkich plików, do których dostęp uzyskano wcześniej niż 7 min temu
find . -type f -min +7 -print
Określenie pliku referencyjnego na potrzeby porównania z wykorzystaniem znacznika czasu.
-newer
Aby na przykład znaleźć wszystkie pliki z czasem modyfikacji późniejszym niż czas modyfikacji danego pliku plik.txt wykonaj
find . -type f -newer plik.txt -print
Wyszukiwanie oparte na wielkości plików
find . -type f -size +2k // pliki przekraczające 2kb
find . -type f -size -2k // pliki mniejsze niż 2kb
find . -type f -size 2k // plik o wielkości 2kb
Jednostki wielkości:
b – bloki 512bajtowe,
c – bajty,
w – dwa słowa bajtowe,
k – kilobajty 1024,
M – megabajty 1024 kilobajty,
G – gigabajty 1024 megabajty.
Dopasowanie na podstawie uprawnień plików i ich praw właściciela
Wyświetlanie plików z uprawnieniami 644
find . -type f -perm 644 -print
Wyświetlanie plików, które nie mają właściwych uprawnień
find . -type f - name “*.php” ! -perm 644 - print
Szukanie plików użytkownika tomasz z parametrem -user
find . -type f -user tomasz -print
Usuwanie plików *.txt w bieżącym katalogu
find . -type f -name “*.txt” -delete
Wykonywanie poleceń -exec
Za pomocą opcji -exec polecenie find może być połączene z wieloma innymi poleceniami
Polecenie find wykorzystuje parę nawiasów klamrowych {} jako reprezentację nazwy plików. W poniższym przykładzie dla każdego dopasowanego pliku ciąg {} zostanie zastąpiony nazwą plików. Następnie zostanie zmieniony właściciel pliku.
find . -type f -user root -exec chown tomasz {} \;
Uwaga! Polecenie jest zakończone w postaci sekwencji ucieczki. w przeciwnym razie zostanie potraktowany przez powłokę jako koniec polecenie find zamiast jako koniec polecenie chwon
Jeśli polecenie przyjmuje wiele argumentów, to zamiast średnikiem można je zakończyć znakiem +. Znak plus umożliwia poleceniu find tworzenie listy wszystkich plików, które pasują do parametrów wyszukiwania, i uruchomienia aplikacji z wszystkimi plikami w jednym poleceniu.
Poniższe działanie można wykonać za pomocą każdego z działań:
find . -type f -name “*.c” -exec cat {} \;>all_c_files.txt
find . -type f -name “*.c” -exec cat {} > all_c_files.txt \;
find . -type f -name “*.c” -exec cat {} > all_c_files.txt \;
Kopiowanie wszystkich plików txt istniejących 10 dni do katalogu OLD
find . -type f -mtime +10 -name “*.txt” -exec cp {} OLD \;
Uwaga! Parametr -exec nie może użyć wielu poleceń, ale można dodać skrypt
-exec ./commans.sh {} \;
Pomijanie określonych podkatalogów przez polecenie find
Wykluczenie plików pasujących do wzorca -prune
find . -name ‘.git’ -prune -o -type f -print
W celu przyspieszenia operacji najpierw wyklucz potem szukaj.
find . -type f -exec bash -c 'echo "This file found" >>"$1"' _ {} \;