Comenzi pentru procesarea fisierelor



Captolul 10: Comenzi pentru procesarea fisierelor



Comanda find poate fi utilizata pentru a gasi fisiere anume oriunde in structura de directoare. Comanda grep este utilizata pentru gasi siruri de caractere specifice in fisiere si pentru a lista fisierele si liniile in care au fost gasite.


Gasirea fisierelor

Comanda find poate fi utilizata pentru a descoperii fisiere pe baza anumitor criterii. Atunci cand un fisier sau grup de fisiere s-a potrivit cu criteriul se poate executa alta comanda asupra fisierelor gasite.Comanda find poate fi utilizata in multe scopuri, inclusiv pentru stergrerea, salvarea sau printarea fisierelor. Comanda find poate localiza fisiere atat pe sistemul propriu cat si pe un sistem la distanta. Cautarea incepe din punctul specificat din ierarhia de directoare catre subdirectoarele aflate sub acel punct. O cautare care incepe din root poate dura foarte mult timp.



Cautarea unui sir de caractere in fisiere

Comanda grep (Global Regular Expression Print) este utilizata pentru a cauta un sir de caractere intr-un fisier sau in rezultatul unei comenzi. Comanda grep cauta in fisier sirul specificat s afiseaza toate liniile care contin modelul respectiv. Aceasta comanda este utilizata  in mod frecvent ca filtru impreun acu alte comenzi. De exemplu, puteti executa comanda ps (process status) si in rezultatul executiei sa cautati toate potivirile cu un anume proces. Comanda grep este case sensitive.


grep [optune(i)] sir cale/numefisier


In examplul urmator, comanda grep este folosita pentru a cauta in toate fisierele din directorul curent (indicat prin ./) pentru a gasi acele fisiere care contin sirul de caractere xyz.


grep xyz ./*


Sortarea fisierelor cu comanda sort

Comanda sort asigura un mijloc rapid si simplu pentru a putea organiza datele fie in ordine afabetica fie in ordine numerica. Comanda sort lucreaza numai cu fisiere text ASCII. Exista un numar de optiuni disponibile pentru comanda sort. Acestea permit operatorului sa defineasca tipul de sortare care trebuie executata precum si campul din care sa inceapa sortarea.


sort [options] [input_filename]


In examplul urmator, comanda sort va fi utilizata pentru a produce un tip de sortare ASCII , incepand cu primul caracter al fiecarei linii pentru file2.


Exemplu:

sort file2


In exemplul urmatorare loc o sortare numerica (n) in al doilea camp al unui fisier (sort sae un separator folosind +1 in sintaxa).


Exemplu:
sort +1n fileX

Arhivarea (comprimarea) si dezarhivarea:


Linux-ul include in orice distributie utilitarele de arhivare/dezarhivare ca tar, gzip, gunzip.


Mai intai cateva cuvinte: Ce este arhivarea si de ce este utila ?


Arhivarea este procesul prin care un anume fisier este 'codat' astfel incat sa ocupe mai putin spatiu pe mediul de stocare ( de regula harddisk sau floppy-disk, dar si banda magnetica si alte medii).

Aplicatiile folosirii acestei tehnici sunt numeroase, dintre care cele mai des folosite sunt in primul rand economia de spatiu de stocare:

1. CDrom-ul cu distributia Linux (si nu numai) are fisierele arhivate, pentru a folosi mai eficient spatiul disponibil.

2. Daca vreti sa copiati pe discheta (1.44 Mb) un fisier mai mare decat spatiul disponibil, tebuie mai intai sa arhivati (comrimati) fisierul.

3. Toate programele si documentatiile disponibile pe internet sunt arhivate pentru a diminua folosirea retelei si timpul de copiere!


Tehnicile de compresie sunt foarte complexe si specializate pe tipuri de fisiere. Astfel exista compresie pentru imagini, pentru videoclipuri, pentru audio, dar si pentru fisiere 'normale', care nu se incadreaza in aceste tipuri.

Cand aveti nevoie sa folositi comprimarea/decomprimarea fisierelor:


  • Cand obtineti intr-un fel sau altul fisiere comprimate,
  • Cand aveti nevoie de spatiu pe disk, sau un anume fisier nu incape pe discheta,
  • Ca sa pastrati ordine in fisierele dvs (de ce nu ?),
  • Cand trimiteti un fisier prin email este politicos intai sa-l comprimati
  • etc

Cum comprimati un fisier ? Cum decomprimati un fisier ?

Compresia

Comanda pentru compresia unui fisier este 'gzip', iar sintaxa este foarte simpla:


$ gzip fisier


Comprima 'fisier'. La sfarsitul acestei operatii fisierul va avea extensia .gz si bineinteles o lungime mai mica!

Se pot folosi si wildcards (metacaracterele). In exemplul urmator,


$ gzip *.txt


comprima toate fisierele cu extensia '.txt'. La sfarsitul acestei operatii fisierele vor fi inlocuite cu fisiere cu extensia '.txt.gz'!

Atentie: Aceasta comanda va crea pentru fiecare fisier existent cate un fisier corespunzator cu extensia 'gz'.

Daca vreti sa reuniti intr-o singura arhiva mai multe fisiere trebuie sa folositi comanda 'tar'.


Decompresia


Opusul comenzii gzip este comanda 'gunzip'.


Exemplu:


$ gunzip doc1.txt.gz


La sfarsitul acesti operatii fisierul 'doc1.txt.gz' va fi inlocuit cu versiunea decomprimata 'doc1.txt'


Sau:


$ gunzip *.gz

Aceasta comanda decomprima toate arhivele din directorul curent.

Cum comprimati/decomprimati mai multe fisiere/directoare intr-o singura arhiva: comanda 'tar' se foloseste pentru comprimarea/decomprimare mai multor fisiere dintr-o singura arhiva.

Comanda tar are urmatoarea sintaxa:


$ tar optiuni arhiva fisiere


Pentru arhivare se pot folosi optiunile '-cvf', iar pentru dezarhivare optiunile '-xvf'


Exemple:


$ tar -cvf arhiva.tar *.txt

Arhiveaza toate fisierele cu extensia '.txt'


$ tar -xvf arhiva.tar

Dezarhiveaza toate fisierele din 'arhiva.tar'


De retinut ca aceasta arhivare nu comprima fisierele. Astfel, dupa arhivare, lungimea arhivei este egala cu suma lungimii fisierelor din arhiva. Totusi, aceasta arhiva o puteti comprima ca pe un fisier obisnuit:


Exemplu:


$ gzip arhiva.tar

La sfarsitul acestei comenzi in directorul curent veti avea un fisier cu numele 'arhiva.tar.gz'


Compresia si arhivarea automata

In unele cazuri este practic sa arhivati si comprimati anumite fisiere/directoare folosind doar o singura comanda ('tar'). Acest lucru se poate face foarte simplu adaugand optiunea z printre optiunile comenzii tar.


Exemple:


$ tar -zcvf arhiva.tgz *.doc

Arhiveaza si comprima toate fisierele cu extensia '.doc'


$ tar -zxvf arhiva.tgz

Decomprima si dezarhiveaza 'arhiva.tgz'

Extensia '.tgz' este echivalenta cu '.tar.gz' si/sau cu 'tar.Z' iar extensia '.gz' este echivalenta cu '.Z'.

RPM


rpm -qilp package.rpm

Pentru a avea o descriere rapida a pachetelor, urmata de o lista a fisierelor.

rpm -i package.rpm

Pentru a instala un pachet nou.

rpm -U package.rpm

Pentru a updata un pachet deja existent .

rpm -qa

Pentr a lista toate pachetele instalate.

rpm -e package

pentru a dezinstala un pachet.