poniedziałek, 13 stycznia 2020

Znajdowanie pliku w systemie Linux przy pomocy komendy find

Zawsze oczywiście zapominam składnię, wiec właśnie zapisuję.

wyszukaj w katalogu, w którym się aktualnie znajduję, w nazwie pliku, bądź katalogu słówko "jmeter":

find . -name '*jmeter*'

To samo tylko dla plików:

find . -name '*jmeter*' -type f

To samo tylko dla plików nie kończących się na "png":

find . -name '*jmeter*' -type f -not -name '*png'

To samo tylko dla maksymalnego zagłębienia się w katalog drugiego poziomu:":

find . -name '*jmeter*' -type f -not -name '*png' -maxdepth 2

Pokaż wszystkie katalogi wewnątrz folderu bierzącego

find . -type d

Znajdź pliki, które były edytowane mniej niż 10 minut temu

find . -type f -mmin -10

Znajdź pliki, które były edytowane więcej niż 10 minut temu

find . -type f -mmin +10

Znajdź pliki, które były edytowane więcej niż minutę temu, ale mniej niż 10 minut temu

find . -type f -mmin +1 -mmin -10

Znajdź pliki, które były edytowane mniej niż 20 dni temu

find . -type f -mtime -20

Znadź pliki, które są większe niż 5 MB

find . -size 5M

Znajdź puste pliki

find . -empty

Znajdź pliki, które mają uprawnienia 775

find . -perm 775

Znajdź wszystkie obrazki .png w bieżacym katalogu i przypomocy komendy chown zmień właściciela na test_user i grupę na test_group
Nawiasy klamrowe {} są placeholderem imitującym plik, a znak plus na końcu + mowi, że to koniec komend.

find . -type f -name "*.png" -exec chown test_user:test_group {} +

Znajdź wszystkie obrazki jpg tylko w bieżącym katalogu (nie w podkatalogach czyli użyjemy -maxdepth 1 gdzie jedynka to ilość w głąb katalogów) i usuń je. To zagłebienie w katalogi jest ważne, gdyż domyślnie komenda find idzie do ostatniego katalogu wgłąb.

find . -type f -name "*.jpg" -maxdepth 1 -exec rm {} +

Uwaga! Wszędzie ciapki są ważne. Ciapki można zastapic cudzysłowami i vice versa. Ważne tylko, aby stosować je konsekwentnie.

Brak komentarzy:

Prześlij komentarz