
Linux: Wiersz poleceń – wyszukiwanie plików
Omówienie komendy find i możliwości jakie daje. Wyszukiwanie plików o konkretnych nazwach, dacie modyfikacji, uprawnieniach, konkretnego właściciela, odpowiedniej wielkości.
Szukanie według nazwy
- find -name nazwaplikulubkatalogu
szuka pliku/katalogu o podanej nazwie, wielkość liter ma znaczenie - find -iname nazwaplikulubkatalogu
szuka pliku/katalogu o podanej nazwie, wielkość liter nie ma znaczenia - find nazwakatalogu -name nazwaplikulubkatalogu
szuka pliku/katalogu w podanym katalogu
Szukanie według typu
- find -type f -name nazwapliku
szukanie konkretnego pliku, - find -type d -name nazwakatalogu
szukanie konkretnego katalogumożliwe typy:- b – blokowy
- c – znakowy
- d – katalog
- p – łącze nazwane (FIFO)
- f – zwykły plik
- l – dowiązanie symboliczne
- s – gniazdo
Szukanie według wielkości:
- find -size 1M
szukanie plików o wielkości dokładnie 1MB - find -size +1M
szukanie plików większych niż 1MB - find -size -1M
szukanie plików mniejszych niż 1MB - find -size +1M -size -2M
szukanie plików większych niż 1MB i zarazem mniejszych niż 2MBmożliwe wielkości:- c (bajty)
- k (kilobajty)
- M (megabajty)
- G (gigabajty)
- b (512 bajtowe bloki)
Szukanie według czasu:
- find -mtime 30
znajdź pliki zmodyfikowane 30 dni temu - find -atime -7
znajdź pliki otwierane w ciągu mniej niż 7 ostatnich dni - find -ctime +5
znajdź pliki, którym modyfikowano atrybuty dawniej niż 5 dni temu - find -mmin -60
znajdź pliki modyfikowane w ciągu ostatnich 60 minut - find -newer plik.txt
znajdź pliki nowsze niż plik.txt
Szukanie według właściciela i uprawnień:
- find -user root -name “k*.txt”
znajdź pliki tekstowe rozpoczynające się na literę k, których właścicielem jest root - find /home -user uczen
znajdź w katalogu /home wszystko co należy do użytkownika uczen - find -group szkola
znajdź w bieżącym katalogu wszystko co jest przypisane do grupy szkoła - find -type f -perm 0777
znajdź pliki o ustawionych uprawnieniach na 777
Zaprzeczenie:
- find ! -type f
znajdź wszystko poza plikami - find -not -user uczen
znajdź wszystko co nie należy do użytkownika uczen
Głębokość poszukiwań
- find -maxdepth 2 -name *.txt
znajdź pliki tekstowe schodząc w strukturze katalogów maksymalnie o 2 katalogi w dół (2 zagnieżdżenia)
Operator LUB
- find -name ‘*.php’ -o -name ‘*.txt’
znajdź pliki o rozszerzeniu php lub txt
Szukanie w kilku katalogach
- find ./katalog1 ./katalog2 -type f -name “abc*”
znajdź pliki znajdujące się w katalogu1 lub katalogu2, których nazwa rozpoczyna sie od abc
Szukanie plików ukrytych
- find ~ -type f -name “.*”
znajdź pliki ukryte (~)
Puste pliki i katalogi
- find /tmp -type f -empty
znajdź puste pliki - find /tmp -type d -empty
znajdź puste katalogi
Łączenie poleceń
- find . -exec ls -ld {} \;
wyświetlenie zawartości bieżącego katalogu wraz ze szczegółami uprawnień - find /tekstowe -type f -name “*.txt” -exec rm -f {} \;
usunięcie wszystkich znalezionych plików tekstowych z katalogu /tekstowe - find . -type f -exec ls -s {} \; | sort -n -r | head -5
Znajdź 5 największych plików w bieżącym katalogu i podkatalogach - find . -type f -exec ls -s {} \; | sort -n | head -5
Znajdź 5 najmniejszych plików
Przykłady
Poniższe przykłady wykonane zostaną na zestawie plików: pliki_katalogi_1000
Struktura katalogów załączonego pliku:
Na początek wyszukanie konkretnego pliku z wykorzystaniem find -name nazwa_pliku
find -name 0xgjf4td0.txt
Wyszukanie konkretnego pliku w konkretnym katalogu find katalog -name plik
find pliki/tekstowe -name 0xgjf4td0.txt
Wyszukanie katalogu find -type d -name katalog
find -type d -name internetowe
Wyszukanie pliku o dowolnej nazwie, ale konkretnym rozszerzeniu find -type f -name “*.rozszerzenie”
find -type f -name “*.php”
Wyszukanie plików o konkretnym rozszerzeniu rozpoczynających się na daną literę, w tym wypadku t
find -type f -name “t*.php”
Wyszukanie plików, dla których ustawiono konkretne prawa dostępu, w tym wypadku 777
find -type f -perm 0777
Znajdź pliki o prawach innych niż 777 rozpoczynające się na literę t, o rozszerzeniu php.
find -type f ! -perm 0777 -name “t*.php”
Przykład połączenia wyszukiwania i usunięcia znalezionych plików.
find -type – name “b*.txt” -exec rm -f {} \;
Wyszukanie pustych -empty plików o konkretnej nazwie
find pliki/grafika -type f -empty -name “is*”
Usunięcie wszystkich plików z katalogu grafika, następnie wyszukanie pustych katalogów
find pliki/grafika -type f -name “*” -exec rm -f {} \;
find -type d -empty
Wyszukanie plików o zadanych parametrach nazwy będących własnością użytkownika uczen
find -user uczen -name “a*.bat”
Wyszukanie katalogów zmodyfikowanych w ciągu ostatnich 60 minut.
find -mmin -60
Ćwiczenia
Pobierz i wypakuj na pulpicie pliki_katalogi_1000, a następnie wykonaj poniższe ćwiczenia:
- Znajdź plik w katalogu pliki o nazwie 0jya9oqjhm. W jakim znajduje się on katalogu i jakie ma rozszerzenie?
- Znajdź wszystkie pliki w katalogu pliki, których nazwa rozpoczyna się i kończy literą a.
- Będąc w katalogu pliki wykonaj ćwiczenie 2 wyłącznie dla katalogu grafika.
- Znajdź w katalogu /home wszystkie pliki większe niż 1MB, ale mniejsze niż 15MB.
- Znajdź w katalogu /home wszystkie pliki utworzone w ciągu ostatnich 3 godzin, których nazwa rozpoczyna się od litery c, których jesteś właścicielem.
- Znajdź wszystkie katalogi zawarte w katalogu /home.
- Zmień dowolnym 3 plikom tekstowym z katalogu tekstowe, kolejno:
- zawartość
- uprawnienia na 777
- atrybut na ukryty
- Wyszukaj pliki w katalogu pliki, którym w ciągu ostatniej godziny zmieniono uprawnienia.
- Wyszukaj pliki w katalogu pliki, którym w ciągu ostatnich 80 minut zmieniono zawartość.
- Utwórz nowy plik tekstowy w katalogu tekstowe tak, aby jego wielkość przekroczyła 1MB, a następnie wyszukaj w katalogu pliki plik zmodyfikowany dzisiaj, którego wielkość przekracza 1MB.
- Znajdź pliki w katalogu pliki o uprawnieniach 777.
- Znajdź pliki w katalogu pliki o rozszerzeniu PhP. Wyświetlić się ma lista plików o rozszerzeniu .php (wielkość liter).
- Usuń wszystkie pliki o rozszerzeniu bmp z katalogu grafika.
- Usuń wszystkie pliki różne niż mp3 z katalogu muzyka.
- Usuń wszystkie pliki z katalogu wideo.
- Znajdź puste katalogi w katalogu pliki.
- Znajdź 3 największe pliki w katalogu /home.
- Znajdź w katalogu pliki pliki ukryte.
- Wyszukaj w katalogu pliki pliki o rozszerzeniu txt, jpg oraz sql.
- Znajdź puste pliki w katalogach tekstowe i grafika.