Komendy Linux: Wyszukiwanie plików i katalogów

Wyszukiwanie plików i katalogów

 

Zastosowanie polecenia find pozwala odnaleźć nie tylko pliki i katalogi, ale także inne elementy na dysku, gdyż posiada najbardziej zaawansowane operacje wyszukiwania. Jako parametr podajemy ścieżkę, w której system ma szukać danego elementu, i opcje, jakie ten element powinien posiadać.

 

[email protected]:~$ find ./ -name 'p*'

./plik1.txt

./plik2.txt

 

 

 

  • Parametry komendy (find):

 

- depth

Użycie tego parametru powoduje przetwarzanie zawartości katalogu przed sprawdzeniem samego katalogu.

 

- maxdepth

Dzięki temu parametrowi możemy zdefiniować „głębokość" schodzenia w poszukiwaniu danego elementu, określając maksymalne zagnieżdżenie.

 

[email protected]:~$ find ./ -maxdepth 3 -name '*'

./

./nowy_plik.txt

./nowy_plik (kopia).txt

./plik2.txt

./plik1.txt

 

- mindepth

Dzięki temu parametrowi możemy zdefiniować „głębokość" poszukiwania, określając minimalną głębokość, do której należy zejść w poszukiwaniu danego elementu.

 

[email protected]:~$ find ./ -mindepth 1 -name '*'

./

./nowy_plik.txt

./nowy_plik (kopia).txt

./plik2.txt

./plik1.txt

 

W kilku parametrach, które zostaną teraz omówione, występuje litera n . Oznacza ona wartość, którą można podstawić w jej miejsce. Możemy wpisać dowolną znaną wartość lub wartość ze znakiem

+ (plus - więcej niż, np. +1 to więcej niż 1) bądź - (minus - mniej niż, np. - 5 to mniej niż 5). Zastosowanie polecenia z tym parametrem pozwala wyszukać pliki, do których dostęp nastąpił n minut temu.

 

-amin

Wyszukuje pliki które zostały otworzone n*24 godziny temu, gdzie n oznacza wpisywaną wartość.

 

[email protected]:~$ find ./ -amin +1 -name 'p*'

./plik1.txt

./plik2.txt

[email protected]:~$ find ./ -amin -1 -name 'p*'

[email protected]:~$

 

 

 

- cmin

Wyszukuje pliki, których status został zmieniony n minut temu.

 

[email protected]:~$ find ./ -cmin -4 -name 'p*'

./kat1/kat2/plik1.txt

 

- ctime

Wyszukuje pliki, których status został zmieniony n * 24 godziny temu.

 

- empty

Wyszukuje pliki puste.

 

[email protected]:~$ find ./ -empty -name 'p*'

./plik1.txt

 

- group

Wyszukuje pliki należące do danej grupy.

 

[email protected]:~$ find ./ -empty -group users -name 'p*'

./plik1_bkp.txt

./katalog2

./katalog5

 

- iname

Wyszukuje pliki, których nazwy pasują do wzorca, jednak nie uwzględnia różnicy w wielkości liter w nazwach elementów.

 

- links

Wyszukuje pliki mające dowiązania.

 

[email protected]:~$ find ./ -links 1  -name '*'

./kat1/kat2

./plik.tar

./plik.tar.gz

./kopia.txt

[email protected]:~$ find ./ -links 2  -name '*'

./

/kat2/folder/bkp

./kopia~

 

 

 

- mmin

Wyszukuje pliki modyfikowane n minut temu.

 

[email protected]:~$ find ./ -mmin 10

./kat1/kat2/plik1

 

- mtime

Wyszukuje pliki modyfikowane n * 24 godziny temu.

 

- name

Wyszukuje pliki, których nazwa pasuje do wzorca.

 

[email protected]:~$ find ./ -name 'p*i?'

./kat1/kat2/plik1

./kat1/plik1

./plik1

./plik2

 

- nouser

Wyszukuje pliki, do których nie pasuje żaden użytkownik.

 

- nogroup

Wyszukuje pliki, do których nie została przypisana grupa.

 

- perm [prawa]

Wyszukuje pliki, dla których określono odpowiednie prawa dostępu.

 

[email protected]:~$ find ./ -perm 777

./kat1/kat2/plik1

./plik2

 

- perm [-prawa]

Wyszukuje pliki, dla których wszystkie bity praw zostały ustawione.

 

- perm [+prawa]

Wyszukuje pliki, w których jakikolwiek z bitów praw jest ustawiony.

 

 

 

- regex [wzorzec]

Wyszukuje pliki posiadające nazwę zgodną ze wzorcem. Wzorzec definiuje się zgodnie z prawami dotyczącymi wyra żeń regularnych.

 

- size [rozmiar pliku]

Wyszukuje pliki o określonym rozmiarze - w tym przypadku jest to tyle, ile jest zajętych bloków, czyli 512 jednostek bajtowych na dysku.

 

[email protected]:~$ find ./ -size +1

./kat1/kat2/plik1

./plik2

./kat1/kat2

./plik.tar

./plik.tar.gz

./kopia.txt

 

 

 

- type [-typ pliku]

Wyszukuje elementy należące d o określonego w parametrze typu (katalogi, pliki, dowiązania lub urządzenia).

 

[email protected]:~$ find ./ -type d

./kat1/kat2/plik1

./kat3

./folder1

 

  • Typy elementów to:

-b - plik blokowy,

-c - plik specjalny,

-d - katalog,

-p - nazwany potok,

-f - zwykły plik,

-l - dowiązanie symboliczne,

-s - gniazdo.

 

 

 

-user [nazwa użytkownika]

Wyszukuje pliki, których właścicielem jest podany użytkownik.

 

[email protected]:~$ find ./ -user root

[email protected]:~$ find ./ -user user

[email protected]:~$ find ./

./kat1/kat2

./plik.tar

./plik.tar.gz

./kopia.txt