SYSTEMY OPERACYJNE
M E N U
Ogłoszenia Plan_laboratoriów Laboratorium_1 Laboratorium_2 Laboratorium_3 Laboratorium_4 Laboratorium_5 Laboratorium_6 Kol_1_fin_03_04 Kol_1_imn_03_04 Kol_konkurs1 Giełda_zadań Laboratorium_8 Laboratorium_9 Laboratorium_10 LinkiLaboratorium_2
Ostatnia aktualizacja: 2005-03-03 15:51:01Zadania - polecenie find.
W odpowiedziach są błędy.Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape.
#gdy zależy nam na wielkości liter locate netscape
#gdy nie zależy nam na wielkości liter locate -i netscape
1.
Ogranicz wynik polecenia 1 do tych programów, które występują w podkatalogach katalogu /usr, a następnie do tylko tych plików, których nazwa brzmi dokładnie netscape.
#gdy zależy nam na wielkości liter
find /usr -mindepth 2 -name *netscape* -print; find /usr/*/ -name *netscape* -print
#gdy nazwa ma brzmieć netscape
find /usr -mindepth 2 -name netscape -print; find /usr/*/ -name netscape -print
2.
Znajdź trzy literowe programy, znajdujące się w podkatalogach bin katalogu /usr.
w katalogu /usr jest kilka podkatalogów /bin np: /usr/bin, /usr/X11R6/bin, ...
oto złe rozwiązanie:
find /usr/bin -mindepth 2 -not -type d -perm +ugo+x -name "???" -print
propozycja: Tomasz Gajtkowski
for d in `find /usr -type d -name bin` do
find $d -type f -name "???" done 2>/dev/null
czekam na inne propozycje
3.
Znajdź wszystkie pliki zwykłe w systemie, które mają w nazwie ciąg znaków "conf" i wyświetl je na ekranie.
#gdy chcemy wyświetlić nazwy plików find / -type f -name *conf* -print
4.
Znajdź wszystkie podkatalogi w katalogu /var.
#gdy chcemy wyświetlić podkatalogi razem z podkatalogami podkatalogów find /var -mindepth 1 -type d -print
#gdy chcemy wyświetlić podkatalogi bez ich podkatalogów find /var -mindepth 1 -maxdepth 1 -type d -print
5.
Odszukaj w swoim katalogu domowym wszystkie pliki zwykłe, mające w nazwie ciąg znaków "txt".
#gdy zależy man na wielkości liter find ~ -type f -name "*txt*" -print
#gdy nie zależy nam na wielkości liter find ~ -type f -iname "*txt*" -print
6.
Odszukaj w swoim katalogu domowym wszystkie pliki zwykłe, mające w nazwie ciąg znaków "txt", wyświetl ich nazwy i zawartość.
find ~ -type f -name "*txt*" -printf %f':nn' -exec cat '{}' ';'
Odszukaj w katalogu /tmp wszystkie podkatalogi i wyświetl ich opis.
find /tmp -mindepth 1 -type d -ls
8.
Odszukaj w systemie wszystkie pliki (i katalogi), które są Twoją własnością, po czym wyświetl ich nazwy.
#same nazwy plików
find / -user twoj_login -printf %f'n'
#nazwy plików z pełną ścieżką find / -user twoj_login -print
#przekierowanie standardowego wyjścia błędów find / -user twoj_login -print 2>/dev/null
9.
Odszukaj w katalogu /etc wszystkie pliki zwykłe, mniejsze niż 7000 bajtów.
find /etc -size -7000c -not -type d find /etc -size -7000c ! -type d
10.
Znajdź w swoim katalogu domowym (bez podkatalogów) te pliki, które były modyfikowane w ciągu ostatnich dziesięciu dni i wyświetl ich nazwy.
find ~ -maxdepth 1 -mtime 10 , -mtime -10 -not -type d -print
find ~ -maxdepth 1 -mtime 10 , -mtime -10 -not -type d -printf %f'n'
11.
Znajdź w katalogu bieżącym pliki zwykłe, które były modyfikowane ponad 4 dni temu.
find . -type f -mtime +4 -print
12.
Znajdź w swoim katalogu domowym wszystkie pliki, które nie były używane w ciągu ostatnich 20 dni.
?
find ~ -not -type d -atime +20 -print
13.
Znajdź w swoim katalogu domowym wszystkie pliki zwykłe, które były modyfikowane ponad 8 dni temu i wyświetl ich zawartość, pytając wcześniej o potwierdzenie.
find ~ -type f -mtime +8 -ok cat '{}' ';'
14.
Znajdź w swoim katalogu domowym wszystkie pliki, które były modyfikowane później niż plik /etc/passwd, wyświetl ich nazwy oraz sprawdź, jakiego są typu. (typ pliku można uzyskać stosując polecenie file)
find ~ -not -type d -newer /etc/passwd -print -exec file -b '{}' ';'
15.
Znajdź wszystkie pliki w katalogu /etc, które są większe niż 10 bajtów i mają więcej niż 1 dowiązanie (link). Wyświetl ich opis (z prawami, atrybutami, itp).
find /etc -not -type d -size +10c -links +1 -exec ls -l '{}' ';'
16.
Znajdź w katalogu /etc wszystkie podkatalogi i pliki o nazwach zaczynających się na literę a, nie będące pustymi katalogami.
?
17.
Znajdź w swoim katalogu domowym (bez podkatalogów) wszystkie pliki zwykłe, mniejsze niż 50 bajtów, które były modyfikowane w ciągu ostatnich 8 dni i wyświetl po 5 pierwszych linii z każdego z nich.
?
find ~ -maxdepth 1 -type f -size -50c -mtime -8 -or -mtime 8 -exec head -5 '{}' ';'
18.
Znajdź w swoim katalogu domowym wszystkie pliki większe niż 50 bajtów, które nie były używane przez ponad 14 dni, albo modyfikowane przez ponad 10 dni i wyświetl ich opis.
?
find ~ -not -type d -size +50c -atime +10 -exec ls -l '{}' ';'
19.
Wyszukaj w całym systemie plików te, które posiadają więcej niż 3 dowiązania
find / -links +3
20.
Usuń z dysku wszystkie pliki o nazwach core lub z przyrostkiem .out które nie były używane w ciągu ostatnich siedmiu dni. Przy usuwaniu system powinien zapytać o potwierdzenie.
find ~ '(' -name core -or -name *.out ')' -exec rm -i '{}' ';'
Znajdź katalogi nie posiadające praw zapisu dla użytkownika lub grupy (albo obu), i przyznaj te prawa.
?
find / -type d -not -perm +ug-w -exec chmod ug+w '{}' ';'
22.
Podaj rozmiar katalogów znajdujących się w Twoim katalogu domowym na I poziomie, oraz na końcu listy wyświetl ich wartość sumaryczną.
find ~ -type d -maxdepth 1 -mindepth 1 -exec du --summarize --human-readable '{}' ';' ; du --summarize --human-readable ~
23.