Wyszukiwanie plików i katalogów
Damian Stelmach
W tym wpisie zajmiemy się programem banalnym w założeniu, ale bardzo ciekawym w użytkowaniu i obszernym w możliwości. Programem tym jest find
czyli sztandarowa wyszukiwarka plików i katalogów.
Program cechuje się sporą liczbą parametrów, które możemy wykorzystywać przy wyszukiwaniu. Raczej nikogo nie zaskoczy fakt, iż wyszukiwać możemy pliki po nazwach czy typie, ale już pewnie część będzie zaskoczona, że pliki również wyszukiwać można np. po czasie od daty ich ostatniej modyfikacji, po uprawnieniach czy właścicielu. Poniżej przedstawiam kilka przykładów użycia:
Wyszukanie plików i katalogów w lokalizacji bieżącej, które w swojej nazwie zawierają frazę dan
:
find . -iname 'dan*'
Wyszukanie plików w lokalizacji bieżącej, wyłącznie z rozszerzeniem txt
:
find . -iname '*.txt'
Wyszukanie wyłącznie plików w lokalizacji bieżącej, które w swojej nazwie zawierają frazę dan
:
find . -iname 'dan*' -type f
Wyszukanie wyłącznie plików w katalogu domowym użytkownika damian
, które w swojej nazwie zawierają frazę dan
i zostały zmodyfikowane w ciągu ostatnich 31 dni:
find /home/damian -iname 'dan*' -type f -mtime -31
Wyszukanie wyłącznie plików w katalogu domowym użytkownika damian
, które w swojej nazwie zawierają frazę dan
, zostały zmodyfikowane w ciągu ostatnich 31 dni, a ich właścicielem jest użytkownik stefan
z jednoczesnym wylistowaniem za pomocą polecenia ls
:
find /home/damian -iname 'dan*' -type f -mtime -31 -user stefan -ls
- ZAPAMIĘTAJ!
-
Parametry w poleceniu
find
można łączyć tworząc zapytanie wielowarunkowe, można również paramterów używać pojedynczo!
Możliwości programu find
nie kończą się tylko na wyszukiwaniu plików czy katalogów. Korzystając z parametru exec
możemy wykonywać całkiem sporą liczbę operacji na wyzyskiwanych zbiorach. Możemy je np. usunąć, skopiować do nowej lokalizacji, zmienić ich właściciela czy uprawnienia, a nawet odczytać interesujące nas informacje zawarte w tych plikach łącząc wyniki wyszukiwania ze znany już z poprzedniego wpisu poleceniem grep
.
Zacznijmy od polecenia, które odnajdzie w bieżącej lokalizacji tylko pliki, które mają w swojej nazwie literę d, a następnie zmieni uprawnienia tych plików na 777:
sudo find . -iname 'd*' -type f -exec chmod 777 {} \;
- UWAGA!
-
Zamiana uprawnień do plików czy katalogów wymaga praw
root’a
, dlatego należy w takim przypadku wykonać to polecenie na prawachsudo
Na końcu polecenia użyty został ciąg znaków {} \;
. To ważne, aby o nim nie zapominać ponieważ jest to element konieczny przy stosowaniu parametru exec
.
No to teraz polecenie, które odnajdzie w bieżącej lokalizacji tylko pliki, które mają w swojej nazwie literę d, a następnie przekopiuje te pliki do katalogu kopia
(co ważne ten katalog musi istnieć!):
find . -iname 'd*' -type f -exec cp {} kopia \;
Ostatni przykład wykorzystania parametru exec
to połączenie go ze znanym już nam poleceniem grep
. Załóżmy, że chcemy odnaleźć ze zbioru plików, których nazwa rozpoczyna się na literę d, zapisanych w bieżącej lokalizacji frazę model
. Nasze polecenie wówczas będzie wyglądało tak:
find . -iname 'd*' -type f -exec grep -i 'model' {} \;
Polecamy: Sekurak Academy 2024
Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp do materiałów z edycji Sekurak Academy z roku 2023! Przy zakupie możecie skorzystać z kodu: pasja-akademia w koszyku, uzyskując rabat -30% na bilety w wersji "Standard" - warto korzystać! Więcej szczegółów znajdziecie tutaj.
Książka: Wprowadzenie do bezpieczeństwa IT
Niedawno wystartował dodruk świetnej, rozchwytywanej książki pt. "Wprowadzenie do bezpieczeństwa IT, Tom I" (około 940 stron). Mamy dla Was kod: pasja (wpisz go w koszyku), dzięki któremu otrzymacie 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla naszych Widzów! Jest to pierwszy tom serii o ITsec, który wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Prosimy, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać w komentarzach! Dziękujemy Wam za poświęcony na to czas!
Disqus