wyszukuje położenie programu w katalogach ze zmiennej $PATH
Postać: which polecenie
Przykład:
$ which find
/usr/bin/find
wyszukuje (wszystkie) położenia plików binarnych, źródłowych i stron podręcznika danego polecenia
Postać: whereis polecenie…
Przykład:
$ whereis find
find: /usr/bin/find /usr/man/man1/find.1.gz
szuka plików w drzewie katalogów
Postać: find [katalog] [wyrażenie]
Argumentem polecenia jest katalog w którym chcemy odnaleźć plik określony za pomocą wyrażenia.
Najważniejszymi opcjami stosowanymi w wyrażeniu są:
-name nazwa_pliku znajdź plik o podanej nazwie
-iname nazwa_pliku znajdź plik o podanej nazwie (nie rozróżnia wielkości liter)
-group nazwa_grupy plik należy do danej grupy
-user nazwa_użytkownika właścicielem pliku jest użytkownik
-type [f|d|l|b] typ pliku: f - zwykły plik, d- katalog, l - link, b - plik blokowy
-atime [+|-]liczba plik był otwierany określoną liczbę godzin temu
-mtime [+|-]liczba plik był modyfikowany określoną liczbę dni temu
-size [+|-]liczba[c|k|M|G] plik o określonym rozmiarze (c - bajty, k - kilobajty, M - megabajty, G - gigabajty
Znak + lub - przed liczba oznacza poszukiwanie odpowiednio większej lub mniejszej wartości
Przykład:
$ find dane/ -name plik.txt
szuka pliku plik.txt w katalogu dane
$ find -name '*.jpg' -user kazik
znajdzie wszystkie pliki o rozszerzeniu .jpg w domowym katalogu należące do użytkownika kazik
$ find . -mtime -2
znajdzie pliki w bieżącym katalogu które były modyfikowane w ciągu ostatnich dwóch dni
$ find /usr -iname '[a-d]*' -user root -type f -size -2M
wyszuka w katalogu /usr pliki o nazwie zaczynającej się od liter a, b, c lub d, których właścicielem jest root i które maja rozmiar nie większy od 2 megabajtów
W momencie znalezienia pliku spełniającego dane wyrażenie można wykonać określoną akcje (standardowo jest to -print czyli wyświetlenie lokalizacji pliku
Dodając opcje -exec możemy wykonać dowolne polecenie. Takie polecenie musi być zakończone znakami ;
$ find . -name '*.txt' -exec echo znalazłem ;
wyświetli komunikat znalazłem dla każdego znalezionego pliku
Aby wykonać polecenie na znalezionym pliku należy dodać {}, w to miejsce zostanie wstawiona jego nazwa
$ find . -name '*.txt' -exec rm -f '{}' ;
spowoduje usuniecie wszystkich znalezionych plików
Dużo więcej na temat polecenia find można znaleźć w dokumentacji man
wyszukiwanie plików o podanej nazwie
Postać: locate [opcje]... [plik...]
Polecenie przeszukuje bazę danych wcześniej zindeksowanych plików w poszukiwaniu informacji o położeniu pliku, którego nazwa (lub ścieżka) zawiera podany wzorzec. Należy jednak pamiętać, że w zależności od tego jak dawno temu przeprowadzane było indeksowanie plików, lista plików może być nieaktualna i może zawierać wpisy o plikach, które już zostały usunięte lub może nie wynajdywać plików, które zostały utworzone przed uaktualnieniem bazy danych.