518 Poznaj Linux
Do czego przydaje się find podczas konserwacji systemu
Polecenia find można użyć do poszukiwania plików według kilkunastu zupełnie różnych kategorii. Wykorzystując find podczas pracy nad konserwacją systemu poszukujemy zazwyczaj plików w oparciu o trzy kryteria: właściciela pliku, rozmiaru pliku lub inne atrybuty (takie jak data ostatniego otwarcia pliku, typ pliku czy uprawnienia do operacji na pliku), find pozwala na przeprowadzenie odpowiednich poszukiwań w stosunkowo prosty sposób. Przykładowo, można łatwo uzyskać listę wszystkich plików typu d (czyli katalogów), w katalogu /usr poleceniem: ffind /usr -type d -print Z kolei poleceniem:
Ufind ŚHOME -size +5k -print
w powyższym przykładzie wyświetlamy listę wszystkich plików o rozmiarach większych niż 5 KB, znajdujących się w naszym katalogu borne (w poleceniu find objaśnienia typu +liczba oznaczają wszystkie wartości większe od podanej liczby, a objaśnienia typu -liczba wszystkie wartości mniejsze od podanej liczby).
Za pomocą opcji atime i fprint można wydrukować do pliku ur.-hit_man_files.log listę wszystkich stron dokumentacji systemu, które, nie były odwiedzane w ciągu ostatnich pięciu dni:
#find /usr/man -atime +5 -fprint unhit man files.log
find może użyć również jako opcji polecenia is. Poniższe polecenie drukuje listę wszystkich plików użytkownika tb znajdujących się w bieżącym urządzeniu (-xdev), w formacie określonym przez opcję 1 s -di i s, do pliku al ] _tb_files . lst. jtfind / -xdcw -uscr tb -ls > all_tb_fileś.lst
Powyższy przykład jest ilustracją tego, jak można wykorzystać find razem z poleceniem tar. Jeśli użytkownik tb nie będzie w najbliższym czasie korzystał z systemu, można spakować jego pliki poleceniem tar, aby nie zajmowały cennego miejsca na dysku:
#cd /
ffind / -user tb -print
/usr/local/projl/stadd.o
/usr/Iocal/projl/stadd.c
/home/tb/docfiles/mk2efs_notes
/home/tbscripts/perlscripts/hforml
(ffind / -xdev -user tb -fprint all_tb_f ileś. lst #tar -cvz -T all_tb_fileś.lst -f all_tb_files.tar.gz
Opcja -T poucza tar, aby szukał listy plików, które ma zarchiwizować wewnątrz pliku zamiast w linii poleceń (korzystając z opcji -r musimy niestety poprzedzać wszystkie