Instrukcja 2 do zajęć SO Linux 3
Transkrypt
Instrukcja 2 do zajęć SO Linux 3
Operacje na plikach i katalogach: polecenia find, cp, mv, rm i ln. Poszukiwanie plików: find (ang: szukaj) Polecenie find pozwala na przeszukanie wnętrza zadanego katalogu wraz z ich podkatalogami, wykonuje poszukiwania na podstawie podanych kryteriów. To złożone polecenie jest faktycznie rozbudowanym programem wyszukującym działającym w terminalu. Wadą jest konieczność stosowania dość złożonych opcji, jednak zaletą jest duża szybkość pracy związana z brakiem środowiska graficznego. Składnia polecenia find jest następująca: $ find nazwa_katalogu wyrażenie Uwaga: standardowo find nie drukuje na ekranie wyników swojego działania. Dlatego wymaga podania na końcu opcji –print, jednak wersja GNU stosowana w Linuxie (z reguły) drukuje również bez tej opcji. Mimo to w skryptach przeznaczonych do ogólnego zastosowania należy tę opcję stosować. Rodzaje wyrażeń Wyrażenia składają się z bloków opcja test połączonych ze sobą operatorami logicznymi. Domyślnym operatorem jest zawsze koniunkcja, co oznacza, że znajdowane są pliki spełniające naraz wszystkie warunki. Przy pomocy nawiasów i operatorów logicznych można tworzyć dowolne bloków stanowiące złożone testy wyszukiwania. Uwaga: wartości numeryczne testów mogą być podawane na jeden z trzech możliwych sposobów: n – dokładnie równe wartości n +n – większe niż wartość n -n – mniejsze niż wartość n Przykładem prostego bloku jest wyszukiwanie plików na podstawie kryterium ich nazwy: $ find –name wzorzec_nazwy_pliku Przykładowe najczęściej stosowane bloki: -name wzorzec_nazwy_pliku – wyszukiwanie pliku na podstawie jego nazwy. Wzorzec nazwy jest składany ze znaków i metaznaków ?, *, []. -iname wzorzec_nazwy_pliku – jak wyżej, ale nazwa pliku jest nieczuła na wielkość liter -size wielkość_pliku – wyszukiwanie pliku na podstawie jego wielkości. Testy dla wielkości pliku mogą być następujące: n – n domyślnych 512-bajtowych bloków nc – n bajtów nk – n kilobajtów nw – n dwubajtowych słów -empty – wyszukiwanie plików pustych -group nazwa_grupy – wyszukiwanie pliku należącego do grupy o podanej nazwie grupy (grupa może być podana numerycznie) -inum n – poszukiwanie pliku o zadanym numerze iwęzła n -links n – poszukiwanie pliku posiadającego n dowiązań -min n – poszukiwanie pliku zmodyfikowanego n minut temu -mtime n – poszukiwanie pliku zmodyfikowanego n*24 godziny temu -nouser – poszukiwanie pliku, którego właściciel nie ma już konta w systemie -nogroup – poszukiwanie pliku, który nie jest przypisany do żadnej grupy -perm –prawa – poszukiwanie pliku, dla którego ustawione są wszystkie bity praw -perm +prawa – poszukiwanie pliku, dla którego ustawione są którekolwiek z bitów praw Ćwiczenia: 1. Wyszukaj w katalogu /etc wszystkie pliki z rozszerzeniem conf 2. Wyszukaj w katalogu /etc pliki, które mają mniej niż 300 znaków i rozszerzenie conf 3. Wyszukaj w katalogu /etc te pliki, które są większe niż 2,5 kB, i maja ustawione prawo wykonania dla grupy i prawo wykonania dla wszystkich. 4. Wyszukaj w katalogu /etc te pliki, które w nazwie mają sekwencję znaków lib, są większe niż 256 bajtów, i mają więcej niż jedno dowiązanie. 5. Wyszukaj w katalogu /etc pliki, które mają nazwy zaczynające się na c, d, k,l, i są typu tekstowego (opcja –type), lub te, które mają rozszerzenie zaczynające się na c, i są typu tekstowego. 6. Wyszukaj w katalogu /etc pliki, które były zmodyfikowane w ciągu ostatnich 30 dni. 7. Wyszukaj w katalogu /etc wszystkie pliki tekstowe, które nie mają rozszerzenia conf. 8. Wyszukaj w katalogu /etc wszystkie podkatalogi. 9. Zapisz wyniki poszukiwań w plikach o nazwach szukaj.numer_zadania w swoim katalogu domowym. 10. Wyszukaj w swoim katalogu domowym te pliki, które modyfikowałeś w ciągu ostatnich 90 minut. Użyj do odwołania się do swojego katalogu znaku „.”. Kopiowanie plików Polecenie kopiowania to cp (ang: kopiuj). Składnia tego polecenia to: $ cp opcje skąd/co dokąd/pod_jaką_nazwę Uwagi dotyczące stosowania polecenia cp: 1. Wskazujemy systemowi operacyjnemu miejsce (czyli skąd i dokąd) za pomocą wcześniej już poznanych ścieżek dostępu, stosujemy w zależności od położenia skrócone formy. 2. Kopiowane pliki możemy wybierać za pomocą wzorców nazw utworzonych za pomocą znaków i metaznaków ?, *, []. 3. Brak informacji w poleceniu może być zamierzony, wtedy system operacyjny stosuje wartości domyślne ścieżki dostępu. I tak, jeżeli brakuje informacji pod jaka nazwę, system stosuje taką nazwę, jaką zna, czyli nazwę oryginału, jeśli nie powiemy, skąd, system szuka w katalogu domyślnym, jeśli nie powiemy, dokąd, to system kopiuje do katalogu domyślnego. Opcje polecenia kopiowania Uwaga: cp domyślnie nie nadpisuje istniejących plików. -f --force usuwa istniejące pliki docelowe -i --interactive pyta, czy nadpisywać istniejące pliki docelowe -l --link tworzy zwykłe (twarde) dowiązania zamiast kopii plików (nie dotyczy katalogów) -p --preserve zachowuje atrybuty (właściciel, prawa, grupa i czas) oryginalnego pliku -r kopiuje rekurencyjnie całe drzewa katalogów bez dowiązań symbolicznych i znaków specjalnych (ale próbuje z nich czytać, co może spowodować zawieszenie polecenia) -R --recursive jak wyżej, ale kopiuje dowiązania symboliczne i pliki specjalne Ćwiczenie: 1. Skopiuj pliki pliketcsortr zakończone cyfrą z katalogu domowego do katalogu test1 (jednym poleceniem). 2. Skopiuj pliki mające w nazwie sekwencję „pogoda” do katalogu publiczne (jednym poleceniem). 3. Skopiuj pliki mające w nazwie ciąg znaków pliketcsort do katalogu test1nakazując nadpisanie istniejących bez pytania. 4. Skopiuj pliki mające w nazwie ciąg znaków pliketc do katalogu test1 tak, aby system pytał przy próbie nadpisania pliku. 5. Skopiuj rekurencyjnie całą zawartość katalogu test do katalogu osobiste. 6. Skopiuj rekurencyjnie zawartość katalogu ~/test/test1 do katalogu ~/test/test2 Przenoszenie plików – polecenie mv Składnia mv jest taka sama, jak kopiowania $ mv skąd/co dokąd/pod_jaką_nazwę Uwaga: błędem jest podanie więcej niż dwu argumentów, jeśli ostatni nie jest katalogiem. Uwaga: polecenie nie zmieni nazw plików, jeśli ostatnim argumentem jest katalog. Jeśli podane są dwie nazwy plików, to zmieni nazwę oryginalnego pliku na podaną. Uwaga: mv potrafi przenieść całe poddrzewo (łącznie z plikami urządzeń) z jednej partycji na drugą. Opcje polecenia mv -f --force jak w poleceniu cp -i --interactive jak w poleceniu cp mv domyślnie zachowuje atrybuty i przesuwa drzewa rekurencyjnie (jak –R). Ćwiczenia: 1. Przesuń plik npogoda z katalogu domowego zmieniając jego nazwę na nowapogoda do katalogu domowego. 2. Przesuń plik nowapogoda z katalogu domowego do katalogu publiczne zmieniając jego nazwę na newpgd. 3. Przesuń pliki mające w nazwie pliksbin do katalogu test2 będącego podkatalogiem katalogu osobiste. 4. Przesuń pliki o rozszerzeniach będących cyfrą z katalogu domowego do katalogu publiczne. 5. Przesuń rekurencyjnie zawartość katalogu ~/test1 do katalogu ~/test3 (najpierw go utwórz). Usuwanie plików – polecenie rm Składnia: $ rm –opcje ścieżka/plik Opcje polecenia rm: -f --force ignoruje nieistniejące pliki i nigdy nie pyta użytkownika -i --interactive prosi o potwierdzenie usunięcia Ćwiczenia: 1. Usuń pliki o nazwach zakończonych cyfrą z katalogu ~/test/test2 bez potwierdzania. 2. Usuń pliki mające w nazwie sekwencję znaków pogoda z katalogu domowego prosząc o potwierdzanie. Usuwanie katalogów – polecenia rmdir Polecenie rmdir usuwa puste katalogi. Składnia: $ rmdir ścieżka/katalog Ćwiczenie: 1. Poleceniem rmdir usuń katalog ~/test3 Rekurencyjne usuwanie katalogów – polecenie rm Polecenie rm z opcją –r lub –R (--recursive) usuwa katalogi wraz z całą zawartością. Ćwiczenie: 1. Usuń rekurencyjnie katalog ~/test Dziękuję za udział w zajęciach i ślad w moim komputerze. G. Kluka