W tym podrozdziale poznamy kilka poleceń służących do zarządzania plikami. Niektóre z nich są tak ważne, że już używaliśmy ich w poprzednich przykładach (np. polecenie  ls)

Te same polecenia które zarządzają plikami, mogą służyć także do zarządzania katalogami np. polecenie rm, lecz używa ich się wtedy często z innymi opcjami.

 

W tym podrozdziale zapoznamy się z następującymi poleceniami:

ls wyświetla atrybuty pliku

cat, more wyświetla plik na ekranie

cp kopiuje plika do plikub

rm usuwa plik

mv zmienia nazwę pliku

cmp, comm, diff porównują pliki

touch tworzenie pustego pliku

 

 

Wyświetlanie pliku na ekranie

Polecenie cat (ang. concatenate) wyświetla całą zawartość pliku na ekranie czyli standardowym wyjściu. Polecenie ma szereg opcji, które przedstawiamy poniżej:

 

Opcja Funkcja

-b wyświetla numeracje wierszy

-E wyświetla znak  $ na końcu każdego wiersza

-T wyświetla znaki tabulacji  jako ^I

-v wyświetla znaki niedrukowalne poza znakami tabulacji i znaku $

 

Aby zilustrować funkcjonowanie załóżmy że dysponujemy plikiem plik1 zawierającym trzy następujące linie:

Jak się czujesz

Wszystko w porządku

To do jutra

 

Aby zobaczyć zawartość tego pliku na ekranie należy wydać polecenie:

$   cat  plik1

 

Jeżeli chcemy znać numeracje wierszy umieszczonych w pliku, wydajemy polecenie:

$ cat –b plik1

1 ....Jak się czujesz

2 ....Wszystko w porządku

3 ....To do jutra

 

Jak widzimy na ekranie pojawił się znak tabulacji – pomiędzy cyfrą i początkiem wiersza.

Jednym z najczęstszych zastosowań programu cat jest możliwość tworzenia, przy jego pomocy, pliku tekstowego. Aby tego dokonać musimy użyć tzw. Znaku przekierowania < po którym wpisujemy nazwę pliku jeszcze nie istniejącego np.  plik2. W linii poleceń wpisujemy:

$  cat   >   plik2

 

_ kursor ustawia się w tym miejscu i możemy rozpocząć wstukiwanie tekstu. Jeżeli chcemy przerwać wpisywanie naciskamy  CTRL+D i znajdujemy się z powrotem

 

na linii poleceń:

$

 

Wykonajmy ćwiczenie od początku zmieniając nazwę pliku na plik3

$  cat   >  plik3

Dzien dobry wykonuje dzisiaj

Cwiczenia z linuxa i poznaje

Polecenia zarzadzajace plikami

CTRL + D

$

 

Jeżeli  przeglądniemy teraz zawartość katalogu domowego przy pomocy polecenia ls. To widzimy, że przy pomocy polecenia cat utworzyliśmy plik o nazwie plik3

 

$ ls –l

-rwxr-x---    1    piotr    oracle    465    maj 27  16:55  plik3

 

Zawartość tego pliku możemy rzecz jasna wyświetlić przy pomocy polecenia cat.

$ cat plik3

Dzien dobry wykonuje dzisiaj

Cwiczenia z linuxa i poznaje

Polecenia zarzadzajace plikami

$

 

Istnieje w niektórych wersjach Linuxa program tac (odwrotność cat) który wyświetla zawartość plików w odwrotnej kolejności czyli od tyłu, w takim przypadku, jeżeli wystukamy w lini poleceń:

 

$ tac  plik3

Polecenia zarzadzajace plikami

Cwiczenia z linuxa i poznaje

Dzien dobry wykonuje dzisiaj

 

Jak zapewne czytelnik zauważył polecenie cat służy nie tylko do wyświetlania plików na ekranie ale dysponuje także innymi funkcjami. Poleceniem, które służy wyłącznie do wyświetlania plików jest polecenie  more. Jest to polecenie tym bardziej interesujące, że umożliwia wyświetlanie plików po kawałku. Jeżeli np. dysponujemy plikiem ogromnych rozmiarów i jeżeli użyjemy polecenia  cat do jego wyświetlenia na ekranie to cała zawartość pliku po prostu przelatuje na ekranie. Polecenie  more pozwala wyświetlać plik fragmentami, przejście od jednego do drugiego fragmentu następuje po naciśnięciu klawisza spacja. Ogólna postać polecenia  more wygląda następująco:

more  [ -opcja ]  [ -liczba wirszy ]  [+numer wiersza ]  [ plik ]

 

Opcja  Funkcja

-f zlicza długie wiersze zapisane w kilku wierszach jako jeden wiersz

-l ignoruje znak zmiany strony

-q zatrzymuje wykonywanie polecenia more

-p blokuje przewijanie ekranu

-s zbiera wszystkie puste wiersze występujące po kolei w jeden pusty wiersz

-u blokuje podkreślenia

-liczba wierszy liczba wierszy która ma zostać jednorazowo

+numer wiersza rozpoczyna wyświetlenie zawartości pliku od wiersza numer pliku

 

 

Kopiowanie usuwanie i zmiana nazwy plików

Najczęściej używanymi poleceniami dotyczącymi plików są polecenia   cat,  cp  ,  mv i rm. Przeanalizujemy je po kolei. Nikogo chyba nie trzeba przekonywać jak ważną i pożyteczną umiejętnością jest kopiowanie plików. Poniżej przedstawiamy opcje polecenia  cp (ang - copy). Ogólna postać polecenia:

cp  [ -opcja ] [ źródło ]   [ cel ]

 

Jeżeli chcemy skopiować plik1 do pliku2 to wystarczy w linii poleceń wystukać:

$  cp plik1  plik2

 

Opcja Funkcja 

-i oczekuje na zgodę skopiowania (nadpisania) pliku

-p do pliku docelowego przypisuje atrybuty pliku źródłowego

-r kopiuje podkatalogi wraz z plikami

 

Przy używaniu polecenia cp użytkownik musi pamiętać o kilku sprawach: po pierwsze musi wiedzieć skąd dokąd chce skopiować dane pliki. Załóżmy, że ??????????????????????????????Dodaj tutaj Tekst Tata.

Kolejną niezwykle przydatną czynnością jest umiejętność przenoszenie wybranych plików z jednej lokalizacji do innej. Służy do tego polecenie mv (ang.  move). Składnia polecenia mv wygląda następująco:

mv    [  -opcja  ]  [ źródło ]  [  cel  ]

 

Opcja

-f usuwa pliki bez pytania o potwierdzenie

-i czeka na potwierdzenie przed zastąpieniem pliku lub plików

-u zastępuje pliki docelowe tylko nowszymi plikami źródłowymi

-v wyświetla dokładne komunikaty

 

Załóżmy że w naszym katalogu domowym mamy plik którego nazwa brzmi  plik_sesja :

$   ls  -l

-rwxr-x---    1    piotr    nauka   265     maj 17  19:21  plik_sesja

-rwxr-x---    1    piotr    nauka    365    maj 19  11:45  plikb

-rwxr-x---    1    piotr    nauka    465    maj 27  16:55  plikc

 

 

Wiemy także że w katalogach innych użytkowników grupy znajduje się plik o tej samej nazwie i dochodzę do wniosku, że np. ze względów bezpieczeństwa chcę zmienić nazwę plik_sesja na plik_piotr

$  mv  plik_sesja  plik_piotr

 

$  ls –l

-rwxr-x---    1    piotr    nauka    265    maj 17  19:21  plik_piotr

-rwxr-x---    1    piotr    nauka    365    maj 19  11:45  plikb

-rwxr-x---    1    piotr    nauka    465    maj 27  16:55  plikc

 

 

Przy pomocy polecenia mv możemy także przenieść pliki z jednego katalogu do innego.

$ mv  plik_piotr    plikc   /etc/katalog1

 

$  ls  -l

-rwxr-x---    1    piotr    nauka    365    maj 19  11:45  plikb

Jak widzimy różnica pomiędzy poleceniem  cp  i  mv jest zasadnicza.

 

Usuwanie plików

W przypadku gdy użytkownik w katalogu domowym ma za dużo plików, musi je od czasu do czasu usuwać. Pliki usuwamy przy pomocy polecenia  rm (ang. remowe ). Używając tego polecenia należy zachować szczególną ostrożność, ponieważ w Linuxie nie ma żadnych znanych z innych systemów operacyjnych poleceń cofania usuwania (ang. undelete). Polecenie rm posiada kilka opcji które należy znać i używać:

 

Opcja Funkcja

-i potwierdzenie usunięcia pliku wyświetlone na ekranie

-f wymuszenie usunięcia

-r

 

Wykonajmy ćwiczenie, załóżmy że znajdujemy się w katalogu domowym i chcemy sprawdzić jego zawartość, w tym celu wykonamy znane już polecenie:

$  ls –l

-rwxr-x---    1    piotr    nauka    265 maj 17  14:45  plika

-rwxr-x---    1    piotr    nauka    365    maj 19  11:45  plikb

-rwxr-x---    1    piotr    nauka    465    maj 27  16:55  plikc

-rwxr-x---    1    piotr    nauka    265 maj 17  14:45  plikd

 

Widzimy, że  plika i plikd maja tą samą objętość w dodatku zostały utworzone w tym samym czasie, po sprawdzeniu i obejrzeniu zawartości plików (możemy tego dokonać także przy pomocy polecenia cmp) stwierdzamy, że są one identyczne, więc chcemy usunąć plik: plikd

 

$ rm  -i   plikd

rm:   remove  plikd  ?                       wstukujemy   y

 

$ ls  -l

-rwxr-x---    1    piotr    nauka    265 maj 17  14:45  plika

-rwxr-x---    1    piotr    nauka    365    maj 19  11:45  plikb

-rwxr-x---    1    piotr    nauka    465    maj 27  16:55  plikc

 

Porównywanie plików: polecenia cmp comm diff

Często w pracy czy to administratora czy użytkownika sytemu operacyjnego Linux napotykamy się na sytuacje, że musimy sprawdzić czy dwa pliki o różnych nazwach nie są identyczne co do ich zawartości. Poleceniem służącym do porównywania zawartości plików jest polecenie cmp. Polecenie cmp porównuje kolejno znak po znaku (lub bajt po bajcie) zawartości plików i zatrzymuje się (jeżeli nie używamy opcji  -l) gdy napotyka pierwszą różnicę. Ogólna postać polecenia ma następującą postać:

cmp  [ -opcja ]  [ plik1 ]  [ plik2 ]

 

Opcja Funkcja

-c wyświetla specyfikacje znaków n.p kod ASCII

-l powoduje że polecenie nie zatrzymuje się przy pierwszej napotkanej różnicy.

 

Załóżmy że dysponujemy dwoma plikami tekstowymi – czytelnik może je stworzyć przy pomocy polecenia  catplik_tekst i   plik_dialog. Oto zawartość obu plików.

 

$ cat plik_tekst

Oto list marka do oli

Z wyznaniem tego co

Zazwyczaj pisza chlopcy

Do kobiet

 

$ cat plik_dialog

Oto list marka do oli

Z wyznaniem tego co

Zazwyczaj pisza chlopcy

Do dziewczyn

 

Wykonujemy polecenie  cmp:

$  cmp  plik_test  plik_dialog

plik_test    plik_dialog   differ  : char  4  , line 4

 

Wyświetlony został komunikat informujący nas o pierwszej napotkanej różnicy między plikami znajdującej się w linii 4.

Polecenie cmp służy do porównywania plików tekstowych o względnie prostej strukturze. Zaawansowanym plikiem do porównywania plików jest polecenie diff.  Jest to program o wielu rozbudowanych funkcjach. Jego podstawową zaletą jest utworzenie pliku różnicowego jako rezultatu porównywania dwóch plików przy pomocy tego polecenia. Ogólna postać polecenia diff wygląda następująco.

diff   [  -opcja  ]  [  plik1  ]   [  plik2 ]

 

Opcja Funkcja

-u plik różnicowy w formacie GNU unified

-c trzywierszowy kontekst wokół każdej różnicy

 

Polecenie diff może wykonywać porównań także na katalogach. W przypadku katalogów polecenie diff będzie porównywał  odpowiednie pliki w obu katalogach w kolejności alfabetycznej.

Polecenie comm jest odwrotnością polecenia cmp ponieważ informuje o wspólnych elementach dwóch plików

 

Tworzymy pusty plik

Linux dysponuje poleceniem touch , którego wykonanie skutkuje utworzeniem pustego pliku:

$ touch  plik_nowy

 

jeżeli wykonamy teraz polecenie ls:

 

$ ls

plik1           plik2           plik3           plik_nowy

 

Z każdym plikiem czy obiektem są skojarzone trzy podstawowe daty: utworzenia, modyfikacji i ostatniego dostępu (np. wyświetlenia). Używając polecenie touch można zmienić czas dostępu i modyfikacji skojarzony z plikiem.

 

$ ls  -l

-rwxr-x---    1    piotr    nauka    265    maj 17  14:45 plika

$ touch plika                                                      data się

$ ls  -l                                                                zmieniła

-rwxr-x---    1    piotr    nauka    265    maj 29  10:21 plika

$

 

Polecenie touch dysponuje następującymi opcjami:

Opcja Funkcja

-a zmienia tylko czas dostępu

-m zmienia tylko czas modyfikacji

-r zmienia nie na bieżący  cza/datę, ale na czas/datę skojarzoną z plikiem referencyjnym

 {module Google reklama arty}

Kurs Linux - polecenia i komendy Linux wykonywane na plikach