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.
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.
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 ./*
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).
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:
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'
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 -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.