Znajdowanie plików
Proste wyszukiwanie plików wg wzorca ( wyrażenia regularne ). Wyszukanie wszystkich plików z rozszerzeniem php w bierzącym katalogu ./
user@server:$ find ./ -type f -iname "*.php"
Składnia to: find [sciezka do katalogu] [opcje]
Opcje:
-type f : wyświetla tylko nazwy plików ( bez katalogów ). Np. literka d będzie pokazywać tylko katalogi
-iname : nie bierze pod uwagę wielkości liter. Np. Linux i linuX to będzie to samo. – co ma zawierać nazwa pliku
Ilość znalezionych plików
user@server:$ find ./ -type f -iname "*.php" | wc -l
wc -l : zlicza ilość linii na standardowym wyjściu
Znajdowanie ciagu tekstu w wielu plikach
user@server:$ find ./ -type f -iname "*.php" | xargs grep -i -l "szukana fraza"
Oczywiście możemy „doczepić” jeszcze jeden potok np. | wc -l i mamy ilość plików zawierających szukaną frazę
Co do polecenia xargs, jest to bardzo przydatny programik, działa on tak, iż pobiera ze standardowego wyjścia ( w naszym przypadku to co „wypluje” find i dokleja to jako argumenty.
Tak więc w naszym przypadku xargs robi coś na wzór:
grep -i -l "szukana fraza" [tutaj xargs dokleja to co dostał z find]
A więc będzie to odpowiednik:
user@server:$ grep -i -l "szukana fraza" plik1
Opcje dla grep:
-i : nie bierze pod uwagę wielkości liter
-l : zamiast wyświetlenia całej linii ze znalezionym tekstem, to wyświetla nazwę pliku ze znalezioną frazą
Wyszukiwanie plików pod względem ich wielkości
Czasem potrzebujemy znaleźć pliki, które są większe lub mniejsze od podanej wartości:
user@server:$ find ./ -type f -size +100M
W tym wypadku zostaną wyświetlone tylko te pliki, które są większe niż 100MB.
Aby szukać mniejszych plików od podanej wartości zamieniamy znaczek + na – przed wartością liczbową.
Za wartościa liczbową możemy wstawić następujące litery:
-k : kilobajty
-M : megabajty
-G : gigabajty
bez literki za wartością liczbową domyślnie liczba będzie określała wartość w bajtach.
Wykorzystanie operatorów logicznych
Aby bardziej sprecyzować warunki dotyczące wyszukiwania plików, możemy posłużyć się operatorami logicznymi.
A więc wykorzystujemy 3 podstawowe operatory logiczne:
-and : AND - czyli oba warunki muszą być spełnione
-or : OR - chociaż jeden z warunków musi zostać spełniony
! : NEGACJA - wyklucza podany warunek
user@server:$ find ./ -iname "*\.php -and -size +100k
W tym przypadku zostaną wyświetlone tylko i wyłącznie pliki z rozszerzeniem php ( bez brania pod uwagę wielkości liter ) i jednocześnie musi być spełniony drugi warunek – czyli pliki powyżej 100KB.
UWAGA: Dla negacji nie dajemy myślnika !!!
user@server:$ find ./ ! -iname "*\.log"
W powyższym przykładzie zostaną wyświetlone wszystkie pliki poza plikami z rozszerzeniem log
Proste wyszukiwanie plików wg wzorca ( wyrażenia regularne ). Wyszukanie wszystkich plików z rozszerzeniem php w bierzącym katalogu ./
user@server:$ find ./ -type f -iname "*.php"
Składnia to: find [sciezka do katalogu] [opcje]
Opcje:
-type f : wyświetla tylko nazwy plików ( bez katalogów ). Np. literka d będzie pokazywać tylko katalogi
-iname : nie bierze pod uwagę wielkości liter. Np. Linux i linuX to będzie to samo. – co ma zawierać nazwa pliku
Ilość znalezionych plików
user@server:$ find ./ -type f -iname "*.php" | wc -l
wc -l : zlicza ilość linii na standardowym wyjściu
Znajdowanie ciagu tekstu w wielu plikach
user@server:$ find ./ -type f -iname "*.php" | xargs grep -i -l "szukana fraza"
Oczywiście możemy „doczepić” jeszcze jeden potok np. | wc -l i mamy ilość plików zawierających szukaną frazę
Co do polecenia xargs, jest to bardzo przydatny programik, działa on tak, iż pobiera ze standardowego wyjścia ( w naszym przypadku to co „wypluje” find i dokleja to jako argumenty.
Tak więc w naszym przypadku xargs robi coś na wzór:
grep -i -l "szukana fraza" [tutaj xargs dokleja to co dostał z find]
A więc będzie to odpowiednik:
user@server:$ grep -i -l "szukana fraza" plik1
Opcje dla grep:
-i : nie bierze pod uwagę wielkości liter
-l : zamiast wyświetlenia całej linii ze znalezionym tekstem, to wyświetla nazwę pliku ze znalezioną frazą
Wyszukiwanie plików pod względem ich wielkości
Czasem potrzebujemy znaleźć pliki, które są większe lub mniejsze od podanej wartości:
user@server:$ find ./ -type f -size +100M
W tym wypadku zostaną wyświetlone tylko te pliki, które są większe niż 100MB.
Aby szukać mniejszych plików od podanej wartości zamieniamy znaczek + na – przed wartością liczbową.
Za wartościa liczbową możemy wstawić następujące litery:
-k : kilobajty
-M : megabajty
-G : gigabajty
bez literki za wartością liczbową domyślnie liczba będzie określała wartość w bajtach.
Wykorzystanie operatorów logicznych
Aby bardziej sprecyzować warunki dotyczące wyszukiwania plików, możemy posłużyć się operatorami logicznymi.
A więc wykorzystujemy 3 podstawowe operatory logiczne:
-and : AND - czyli oba warunki muszą być spełnione
-or : OR - chociaż jeden z warunków musi zostać spełniony
! : NEGACJA - wyklucza podany warunek
user@server:$ find ./ -iname "*\.php -and -size +100k
W tym przypadku zostaną wyświetlone tylko i wyłącznie pliki z rozszerzeniem php ( bez brania pod uwagę wielkości liter ) i jednocześnie musi być spełniony drugi warunek – czyli pliki powyżej 100KB.
UWAGA: Dla negacji nie dajemy myślnika !!!
user@server:$ find ./ ! -iname "*\.log"
W powyższym przykładzie zostaną wyświetlone wszystkie pliki poza plikami z rozszerzeniem log