A A A
logo2




Wyszukiwanie plików oraz katalogów



Chcąc wyszukać pliki można użyć komendy find. Polecenie to ma następującą budowę:
  1. Słowo find
  2. Ścieżka do miejsca, gdzie plik ma być szukany.t
  3. Kryterium według, którego plik ma być wyszukany.
  4. Akcje, czyli co z wyszukanymi plikami zrobić.


find katalog kryterium akcja


Chcąc wyszukać pliki według nazwy należy w miejscu podania kryterium podać parametr -name, a po spacji w cudzysłowiach podać nazwę według, której mają być szukane.

owi@laptop:~$ find ~ -name "a*" -print

Powyższe polecenie spowoduje wyszukanie w katalogu home (symbol "~") plików rozpoczynających się od litery a (kryterium -name "a*") oraz wyświetli ścieżki do tych nich (- print).


Chcąc wyszukać pliki, które nie zawierają pewnej nazwy należy w miejscu podania kryterium podać parametr ! -name a po spacji w cudzysłowiach nazwę według, której nie będziemy szukać.

owi@laptop:~$ find ~ ! -name "a*" -print

Powyższe polecenie spowoduje wyszukanie w katalogu home (symbol "~") plików nie rozpoczynających się od litery a (kryterium !-name "a*") oraz wyświetli ścieżki do nich (- print).


Kolejnym kryterium wartym uwagi jest -empty, które wyszukuje puste pliki.

owi@laptop:~$ find . -empty -print

Powyższe polecenie spowoduje wyszukanie począwszy od katalogu bieżącego (symbol ".") pustych plików (kryterium -empty) oraz wyświetli ścieżki do nich (- print).


Chcąc odnaleźć pliki, które nie mają właściciela tzn jego konto zostało usunięte, używamy parametru -nouser.

owi@laptop:~$ find . -nouser -print

Powyższe polecenie spowoduje wyszukanie począwszy od katalogu bieżącego plików osieroconych (kryterium -nouser) oraz wyświetli ścieżki do nich (- print).


Chcąc odnaleźć pliki, których wielkość przekracza 200 kB, należy użyć kryterium -size, a następnie podać znak +200k gdy pliki maja być większe niż 200 kB lub -200 k jeżeli pliki mają być mniejsze.

owi@laptop:~$ find ~ -size +200k -print

Powyższe polecenie spowoduje wyszukanie w katalogu home plików większych niż 200 kB (kryterium -size +200k) oraz wyświetli nazwy tych plików (- print).


UWAGA!
Podane kryteria można ze sobą łączyć za pomocą spójnika koniunkcji -a oraz alternatywy -o np:


owi@laptop:~$ find / -size +200k -a -name "a*" -print

Powyższe polecenie spowoduje wyszukanie plików rozpoczynających się na literę a, ale tylko tych większych niż 200 kB.


Do tej pory pokazana została jedynie akcja -print pozwalająca na wypisywanie. Aby wykonać na wyszukanych plikach dowolnie polecenia (np kopiuj) należy użyć parametru -exec następnie komenda po komendzie \; np:

owi@laptop:~$ find . -name "a*" -exec cp {} nazwakatalogu \;

Powyższe polecenie spowoduje wyszukanie plików w poczynając od bieżącego katalogu zaczynających sie na literę a oraz każdy z tych plików skopiuje ({}-lista plików do skopiowania) do katalogu o nazwie nazwakatalogu.



Wypisywanie linii pasujących do wzorca



Chcąc wyszukać w pliku linie, które pasują do pewnego wzorca należy użyć polecenia grep. Po nazwie polecenia należy podać wzorzec, a po wzorcu nazwę pliku.

owi@laptop:~$ grep root /etc/passwd

W wyniku działania powyższych poleceń w pliku /etc/passwd zostaną odszukane oraz wyświetlone wszystkie linie gdzie pojawiło się słowo root. Aby wyświetlić jedynie linie, które zaczynają sie od wzorca należy przed wzorcem (bez spacji) podać znak "^".

owi@laptop:~$ grep ^root /etc/passwd

Aby została wyświetlona jedynie liczba linii w których pojawił się podany wzorzec należy użyć parametru -c.

owi@laptop:~$ grep -c ^root /etc/passwd

Aby zostały wyświetlone jedynie linie które nie zaczynają się od podanego wzorca należy użyć parametru -v.

owi@laptop:~$ grep -v ^root /etc/passwd




Autor: Aleksandra Przybyło
aleksandraprzybylo@gmail.com