Jak znaleźć plik pod Linuxem

Konieczność znalezienia konkretnego pliku pod Linuxem pojawia się niespotykanie często. Co prawda na ogół sprowadza się do odszukania tych o wskazanej nazwie bądź rozszerzeniu ale wachlarz możliwości jest dużo, dużo większy.

Chesz przetestować działanie poniższych instrukcji, a nie masz dostępu do serwera Linuxowego? Po rejestacji na DigitalOcean otrzymasz 100 dolarów do wykorzystania w ciągu 60 dni, a z przyjaznym interfejsem uruchomisz ulubioną dystrybucję w ciągu paru minut.

W tym celu w systemach Linuxowych wykorzystywany jest find obsługujący też kryteria bazujące na rozmiarze, właścicielu lub grupie, dacie utworzenia albo modyfikacji, nadanych uprawnieniach i wielu innych.

Gdy program nie będzie w stanie odczytać zawartości katalogu z powodu braku uprawnień zwróci stosowny komunikat, co często prowadzi do zapełnienia konsoli niepotrzebnymi informacjami. Można temu zaradzić korzystając z polecenia sudo.

Find wypisuje pasujące do kryteriów pliki i katalogi znajdujące się we wskazanej lokalizacji, a w przypadku jej pominięcia zostanie użyta aktualnie wybrana. Szukanie zawsze jest rekursywne, to znaczy z podkatalogami, ale można to zmienić za pomocą parametru -maxdepth 1. Możliwości programu najlepiej zobrazują poniższe przykłady.

#Znalezienie elementów o nazwie dane.txt w aktualnym katalogu
radek@centos.local:~$ find -name dane.txt
#Wyszukanie wszystkich elementów o nazwie dane.txt
radek@centos.local:~$ find / -name dane.txt
#Odnalezienie plików o rozszerzeniu txt w aktualnym katalogu
radek@centos.local:~$ find -name *.txt -type f
#Wypisanie wszystkich katalogów o nazwie nginx
radek@centos.local:~$ find -name nginx -type d
#Znalezienie wszystkich plików większych niż 100 megabajtów
radek@centos.local:~$ find / -size +100M -type f
#Odszukanie elementów których właścicielem jest franciszek w aktualnym katalogu
radek@centos.local:~$ find -user franciszek
#Wypisanie wszystkich elementów z uprawnieniami 777 (odczyt, zapis i wykonanie dla wszystkich)
radek@centos.local:~$ sudo find / -perm 0777