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

Podobne dokumenty