Istotną umiejętnością w codziennej pracy z systemami GNU/Linux (szczególnie w przypadku terminala) jest umiejętność odnajdywania plików w strukturze katalogów. Warto również wiedzieć w jaki sposób wyświetlać tylko fragment zawartości plików zarówno jeżeli chodzi ich początek jak i koniec. I o tym dowiesz się w tym wpisie.
Dlaczego sprawne wyszukiwanie plików jest ważne?
Większość osób pracują w konsoli używa przeważnie polecenia find do wyszukiwania plików. Jednak warto również wspomnieć tutaj poleceniu locate, które to polecenie wyświetli całą listę plików wraz z ich ścieżkami w systemie. Jest ono może o tyle niewygodne (czasami), że pokazuje wszystko co pasuje do wzorca (dlatego warto sam wzorzec mocno dookreślić), ale pozwala na szybko wyświetlić przybliżoną ścieżkę dla szukanego przez ciebie pliku. Załóżmy, że szukasz pliku o nazwie message.txt.
1 |
locate message.txt |

Jak widzisz w tym przypadku wyświetliły się tylko 3 wyniki, pierwszy jest tym w który nam chodzi. Jeżeli zamiast message.txt użyte zostałoby message, w wyniku wyświetliłoby się (u mnie) 195 rekordów pasujących do wzorca.
Find …
Narzędziem, które posiada więcej możliwości konfiguracji jest find. Pozwala na wyszukiwanie plików w zależności od wielu parametrów, takich jak: nazwa użytkownika, data, typ zasobu etc.
Jednak zanim zaczniesz z niego korzystać, warto również jeszcze wspomnieć o poleceniu stat, które pozwala na pokazanie danych dotyczących dat: dostępu, utworzenia, modyfikacji w stosunku do pliku.
1 |
stat message.txt |

Dzięki takim informacją jesteś w stanie sprawdzić również czy ktoś nie przegląda plików, do których tylko ty masz dostęp.
Wracając do find poniżej kilka przykładów możliwości tego narzędzia.
Nie pamiętasz, gdzie w katalogu /etc znajduje się plik httpd.conf.
1 |
find /etc -name httpd.conf |
Chcesz wyświetlić wszystkie pliki użytkownika (w całym systemie plików) o ID 1002.
1 |
find / -uid 1002 |
Chcesz wyświetlić pliki użytkownika Kowalski.
1 |
find / -user kowalski |
Jeżeli chcesz uzyskać podgląd wyszukanych plików użytkownika Kowalski użyj poniższego polecenia.
1 |
find / -user kowalski -type f -exec cat {} \; |
Find możesz służyć również bardzo dobrze do kopiowania wyszukanych danych. Załóżmy, że chcesz przekopiować wyszukane pliki użytkownika Kowalski do katalogu użytkownika Kwiatkowska. Zauważ, że można sprecyzować typ danych (tutaj -type f), czyli można skopiować same pliki, ale również -type d – katalogi.
1 |
find / -user kowalski -type f -exec copy {} /home/kwiatkowska/ \; |
I tak jak find pozwala kopiować pliki, przy jego pomocy można również je kasować. Najpierw pliki s
1 |
Find / -user jeff -type f -exec rm {}\; |
Pozostałe polecenia…
Jeżeli chcesz wyświetlić całą zawartość pliku tekstowego na ekran możesz użyć polecenia cat.
1 |
cat message.txt |
Możesz rozszerzyć polecenie cat o more oraz less , które pomagają w przewijaniu długich tekstów w plikach.
1 |
cat message.txt | more |
1 |
cat message.txt | less |
Możesz również za pomocą head oraz tail wyświetlić dowolny fragment plików. Domyślnie te polecenia wyświetlą po 10 wierszy odpowiednio z początku oraz końca pliku. Jednak przy pomocy przełącznika -n możesz dowolnie te ilości wierszy kształtować – zwiększać lub zmniejszać.
1 |
head/tail -n 20 message.txt |
Dane w plikach możesz również sortować przy pomocy polecenia sort. Domyślnie sort ustawia dane od najmniejszych do największych, biorąc pod wagę pierwszą kolumnę w pliku. Jeżeli użyjesz przełącznika -r możesz posortować dane w odwrotnej kolejności. W celu przetestowania tego polecenia utwórz plik liczby.txt umieszczając w nim cyfry w dowolnej kolejności w pierwszej kolumnie (każdą nową cyfrę zatwierdź poprzez Enter). Poniższe polecenia posortują je we właściwej kolejności.
1 |
sort liczby.txt |
1 |
sort -r liczby.txt |
Ostatnim w tym wpisie poleceniem będzie liczenie wystąpień danych w pliku. Możesz w łatwy sposób policzyć dane, które przesyła inne polecenie. Załóżmy, że potrzebujesz policzyć ile wierszy znajduje się w pliku boot.log. W tym celu wykonasz poleceni cat, które jednak nie wyświetli danych na ekran tylko prześle je do polecenia wc -l, aby zostały zliczone.
1 |
cat /var/log/boot.log | wc -l |
To tyle w tym wpisie, zapraszam na kolejny.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).