Sunteți pe pagina 1din 19

Unitatea de învăŃare M2.U2.

Comenzi de lucru cu directoare si


fisiere
Cuprins
M2.U2.1. Introducere........................................................................................................... 40
M2.U2.2. Obiectivele unităŃii de învăŃare............................................................................. 40
M2.U2.3. Comenzi de lucru cu directoare ............................................................................ 41
M2.U2.4. Redirectarea intrărilor şi ieşirilor.......................................................................... 44
M2.U2.5. Copierea, mutarea şi redenumirea fişierelor.......................................................... 48
M2.U2.6. Legături simbolice ............................................................................................... 50
M2.U2.7. Drepturi de acces ................................................................................................. 51
M2.U2.8. Căutarea fişierelor într-o structură de directoare................................................... 53
M2.U2.9. Test de evaluare a cunoştinŃelor .......................................................................... 57
M2.U2.10. Rezumat............................................................................................................. 58
M2.U2.1. Introducere
Sistemele de operare Unix şi Linux oferă o mulŃime de comenzi de lucru cu
directoare şi fişiere. Cunoscătorii sistemelor Windows, vor observa că sub Linux
aceste comenzi au o serie de opŃiuni şi parametri care le fac mult mai puternice
decât cele scrise sub MS-DOS, recunoscute de sistemele Windows. De asemenea,
comenzile de setare a drepturilor sunt mult mai uşor de utilizat decât cele din MS-
DOS.
În plus, sub Linux există o comandă de căutare de fişiere în anumite
structuri de directoare, apecificate ca argumente, după anumite criterii, iar
rezultatul căutării să fie prelucrat de alte comenzi indicate; această comandă este
foarte utilă administratorului de sistem, care are nevoie de o imagine a fişierelor
din sistem, după diverse criterii, cum ar fi dimensiunea, vechimea lor, proprietarul
etc.

M2.U2.2. Obiectivele unităŃii de învăŃare


Această unitate de învăŃare îşi propune ca obiectiv principal o iniŃiere a studenŃilor
în utilizarea comenzilor oferite de shell în lucrul cu directosre şi fişiere. La
sfârşitul acestei unităŃi de învăŃare studenŃii vor fi capabili să:
 înŃeleagă şi să explice sintaxa şi semantica comenzilor de lucru cu directoare şi
fişiere;
 scrie comenzi de creare, modificare, ştergere, vizualizare a structurilor de
directoare şi de poziŃionare în cadrul unei astfel de structuri;
 înŃeleagă şi să explice conceptele legate de redirectarea intrărilor şi ieşirilor;
 scrie comenzi de copierea, mutare şi redenumire a fişierelor;
 înŃeleagă şi să explice conceptele legate de legături simbolice la fişiere;
 creeze legături simbolice la un fişier;
 înŃeleagă şi să explice conceptele legate de drepturile de acces la un fişier;
 scrie comenzi de setare a drepturilor la un fişier;
 scrie comenzi de căutarea a fişierelor într-o structură de directoare.

Durata medie de parcurgere a unităŃii de învăŃare este de 3 ore.

40
M2.U2.3. Comenzi de lucru cu directoare
Creearea directoarelor se face cu comanda mkdir (“make directory”). Sintaxa ei
este:
mkdir [-p] nume_catalog
Dacă este prezentă opŃiunea -p se creează şi cataloagele părinte care lipsesc din numele de
cale dat pentru catalogul dorit.
Exemplu.
$mkdir –p /home/ilflorea/so/Linux/exemple
Înainte de crearea catalogului exemple, vor fi create cataloagele
ilflorea,so,Linux dacă nu au fost încă create, în ordinea specificată.

Tipărirea directorului curent se face cu comanda pwd (“print working directory” ).


Sintaxa ei este: $pwd
Se utilizează pentru a se verifica poziŃia momentană, într-o sesiune de lucru sub Linux, în
ierarhia de cataloage.
Exemplu. Dacă numele de utilizator este ilflorea şi după loginare se tastează
$pwd
se va afişa:
/home/ilflorea
Comanda cd (“change directory”) are sintaxa: cd [nume_catalog]
Are ca efect schimbarea directorului curent sau modificarea poziŃiei curente în ierarhia de
directoare. Directorul dat ca parametru devine noul director curent. Pentru ca această
comandă să poată fi executată, utilizatorul trebuie să aibă drept de căutare (redat prin x în
comanda ls) în catalogul dat ca argument. Utilizarea comenzii cd fără parametru determină
revenirea în catalogul gazdă al utilizatorului.
Exemple.
$cd /home/ilflorea/so/Linux/exemple
# directorul curent va fi exemple
$cd .. #directorul curent va fi Linux
$cd /home/ilflorea #directorul curent va fi ilflorea
Acelaşi efect se obŃine, dacă se tastează :
$cd ~
sau
$cd
Ştergerea unui catalog vid se face cu comanda rmdir (“remove directory”) care are
sintaxa:
rmdir [opŃiuni] nume_catalog
Cu opŃiunea –p se şterg şi eventuale directoare părinte care au devenit vide.
Pentru ştergerea mai multor fişiere sau directoare se foloseşte comanda rm, care are
sintaxa:
rm [optiuni] fisier(e)
OpŃiunea –i: utilizatorul este întrebat înainte de ştergerea efectivă a intrării.
OpŃiunea –r (sau -R): realizează ştergerea recursivă în catalogul la care se referă comanda.
Nu este permisă ştergerea intrării “..”, adică a directorului părinte al fişierului.
OpŃiunea -f şterge fişiere fără mesaj de avertizare.
OpŃiunea -v afişează numele fiecărui fişier înainte de ştergere.

41
Exemple. Presupunem că avem structura de directoare şi fişiere din figura 2.2.1.
Dacă tastăm comenzile:
$pwd
/home/ilflorea/so/exemple/Linux
$rmdir Grep
Se şterge directorul /Grep.
Dacă tastăm:
$pwd
/home/ilflorea
$rd –r so
se vor şterge directoarele /so, /exemple, /Linux, /Windows,/Awk,
/Grep şi fişierele fis1 şi fis2.

/home/ilflorea

/so /so1 fis3 fis1

fis1 /exemple

/Linux /Windows

/Awk /Grep fis2

Figura 2.2.1. Structură de directoare şi fişiere


Comanda ls (“list”) are sintaxa:
ls [opŃiuni] [fişier_sau_director]
Are ca efect afişarea de informaŃii despre un director sau fişier. Se utilizează pentru a se afişa
numele fişierelor de diferite tipuri incluse într-un catalog şi, în funcŃie de opŃiuni alte
informaŃii despre aceste fişiere.
Exemplu. Utilizarea comenzii ls fără opŃiuni. Relativ la structura din figura
2.2.1, dacă tastăm:
$ls /home/ilflorea
Se afişează:
so so1

Cu opŃiunea -l (“long”) se afişează informaŃii suplimentare (luate din nodul de


index) despre fiecare fişier din catalogul argument al comenzii. Prima linie conŃine numărul
de blocuri ocupate de directorul respectiv; următoarele linii conŃin următoarele informaŃii:
- tipul fişierului (d: directory, -: fişier obişnuit b: fişier bloc; c: fişier special orientat pe
caracter; l:legătură simbolică; p: fişier special FIFO (sau “pipe cu nume”); s: intrarea este
un soclu (“socket”) pentru comunicarea în reŃea);
- conŃinutul biŃilor de protecŃie/acces (r = read, w = write, x = execute), listaŃi în ordinea:
proprietar, grupul proprietarului, restul utilizatorilor (se va discuta la drepturi de acces);
- numărul de intrări în cataloage care punctează spre acel fişier fizic;
- numele de login al proprietarului fişierului;
- grupul proprietarului;
- lungimea fişierului ( în octeŃi);
- data ultimei modificări a fişierului;

42
- numele fişierului.
Exemplu. Utilizarea comenzii ls cu opŃiunea -l. Relativ la structura din figura
2.2.1, dacă tastăm:
$ls –l /home/ilflorea
Se afişează:
total 22
drwxr-xr-x 1 ilflorea prof 4096 2010-08-24 22:04 so
drwxr-xr-x 1 ilflorea prof 2048 2010-08-24 23:04 so1
drwxr-xr-x 1 ilflorea prof 12048 2010-08-25 23:04 fis1
drwxr-xr-x 1 ilflorea prof 13048 2010-08-24 23:04 fis3
Cu opŃiunea -a (“all”) se listează şi fişierele ascunse (fişierele al căror nume începe
cu caracterul punct ).
Exemplu. Utilizarea comenzii ls cu opŃiunile -al. Relativ la structura din figura
2.2.1, dacă tastăm:
$ls –al /home/ilflorea
Se afişează:
total 22
drwxr-xr-x 1 ilflorea prof 512 2010-08-24 22:04 .
drwxr-xr-x 1 ilflorea prof 1024 2010-08-24 23:04 ..
drwxr-xr-x 1 ilflorea prof 4096 2010-08-24 22:04 so
drwxr-xr-x 1 ilflorea prof 2048 2010-08-24 23:04 so1
drwxr-xr-x 1 ilflorea prof 12048 2010-08-25 23:04 fis1
drwxr-xr-x 1 ilflorea prof 13048 2010-08-24 23:04 fis3

Cu opŃiunea -i (“index”) se afişează şi numărul nodului index asociat fiecărei intrări


din catalogul listat.
Cu opŃiunea -s (“size”) se afişează dimensiunea în blocuri a fişierului.
Exemplu. Utilizarea comenzii ls cu opŃiunile -alis. Relativ la structura din
figura 2.2.1, dacă tastăm:
$ls –alis /home/ilflorea
Se afişează:
total 22
301860 8 drwxr-xr-x 1 ilflorea prof 512 2010-08-24 22:04 .
65473 8 drwxr-xr-x 1 ilflorea prof 1024 2010-08-24 23:04 ..
360621 8 drwxr-xr-x 1 ilflorea prof 4096 2010-08-24 22:04 so
301862 8 drwxr-xr-x 1 ilflorea prof 2048 2010-08-24 23:04 so1
361443 8 drwxr-xr-x 1 ilflorea prof 12048 2010-08-25 23:04 fis1
301879 8 drwxr-xr-x 1 ilflorea prof 13048 2010-08-24 23:04 fis3
Se observă că numărul nodului index este listat pe prima coloană.

Pentru a schimba ordinea de listare implicită (alfabetic, după numele fişierului) există
mai multe opŃiuni:
-c: listarea se face în ordinea ultimei modificări a modului de acces la fişier (cel mai recent
modificat se listează primul);
-t: listarea se face în ordinea ultimei modificări a fişierului (cel mai recent modificat primul);
-u: listarea se face după timpul ultimului acces la fişier;
-r: inversează ordinea de sortare (invers alfabetic sau cel mai vechi modificat primul).
-S sorteaza fisierele in ordine descrescatoare dupa dimensiunea lor.

43
Exemplu. Pentru găsirea celor mai mari fisiere din directorul curent se listează
fisierele sortate in ordine descrescatoare dupa dimensiunea lor, prin:
$ls -lS
Dacă argumentul unei comenzi ls este un fişier, în funcŃie de opŃiunile utilizate se
afişează informaŃii despre fişierul respectiv.
Exemplu. Dacă se tastează
$ls –l /home/ilflorea/fis1
Se afişează:
drwxr-xr-x 1 ilflorea prof 12048 2010-08-25 23:04 fis1

Să ne reamintim...
Creearea directoarelor se face cu comanda mkdir. Tipărirea directorului curent
se face cu comanda pwd. Comanda cd are ca efect schimbarea directorului
curent sau modificarea poziŃiei curente în ierarhia de directoare. Ştergerea unui
catalog vid se face cu comanda rmdir Pentru ştergerea mai multor fişiere sau
directoare se foloseşte comanda rm. Comanda ls are ca efect afişarea
conŃinutului unui catalog.
CreaŃi o structură de directoare şi fişiere, similară celei din figura 2.2.1., în care să
înlocuiŃi ilflorea , cu numele vostru de utilizator. AdaptaŃi exemplele
prezentate, la structura creată.
M2.U2.4. Redirectarea intrărilor şi ieşirilor
Fiecare comandă Linux are un “fişier de intrare” şi un “fişier de ieşire”. Implicit
acestea sunt “intrarea standard” (tastatura de la care se introduce comanda) şi “ieşirea
standard” (ecranul terminalului la care lucrează utilizatorul).
Interpretorul de comenzi stabileşte identitatea fişierelor standard de intrare şi standard
de ieşire, pe care le ataşează comenzii. Atunci când se execută comanda respectivă, acestea
primesc descriptorii de fişier 0 (intrare) şi 1 (ieşire). De asemenea, shell-ul stabileşte fişierul
standard de erori, care are descriptorul 2 şi este transmis comenzii (de regulă este acelaşi cu
fişierul standard de ieşire).
Shell-ul permite utilizatorului sa specifice explicit în linia de comandă o altă identitate
pentru intrarea standard şi/sau ieşirea standard, prin caracterele speciale <, respectiv >.
Exemplu.
$ ls -l fis1 >fis2
InformaŃiile despre fişierul fis1 din catalogul curent, nu apar pe ecran, ele sunt
memorate în fişierul fis2 din directorul curent. Înainte de lansarea în execuŃie
a comenzii ls, shell-ul deschide pentru scriere fis2 (cu descriptorul de fişier
l). Dacă fişierul fis2 există, prin operaŃia de deschidere pentru scriere
conŃinutul său anterior se pierde; dacă fişierul nu există, el va fi creat de către
shell şi va avea iniŃial lungimea nulă.
Efectul unei specificări de forma:
$comanda <fisier
este acela că argumentele cu care va fi executată comanda nu vor fi luate de la intrarea
standard, ci din fişierul cu numele fisier .
O comandă în care se redirectează atât intrarea cât şi ieşirea va fi de forma:
$comanda <input >output
Ordinea de specificare a redirectărilor nu este semnificativă.

44
Prim notaŃia n>, în care n este un întreg, se specifică redirectarea pentru scriere a
fişierului cu descriptorul n. Această facilitate se foloseşte pentru redirectarea fişierului
standard de eroare. Sintaxa unei comenzi în care toate cele 3 fişiere standard sunt redirectate
este:
$comanda <input >output 2>errors
Pentru ca fişierul în care se redirectează ieşirea să nu fie suprascris, ci să se adauge la
sfârşitul lui noi date, se foloseşte notaŃia >>. Pentru adăugarea la sfârşitul fişierului de erori
sintaxa este 2>>. Astfel:
$comanda >>logfile
va determina ca mesajele produse de comanda să se adauge la sfârşitul fişierului logfile.
Prin notaŃia <<c se specifică preluarea informaŃiilor necesare unei comenzi de la
tastatură (în regim interactiv) sau din textul unei proceduri shell, până la întâlnirea lui c
(caracter sau text). O astfel de constructie este de forma:
$comanda <<cuvant
.......
succesiune de linii
-----
Cuvant
Comanda cat este utilizată pentru a afişa, la ieşirea standard conŃinutul unuia sau
mai multor fişiere specificate în linia de comandă. Prin redirectarea ieşirii, folosind
mecanismul prezentat anterior, cat se poate utiliza pentru a crea un fişier text.
Exemplu. SecvenŃa:
$cat >fis <<EOF
Cursul de Linux
Este foarte important
Pentru mine
EOF
introdusă într-un fişier de comenzi, are ca efect crearea fişierului fis ce conŃine
trei linii ” Cursul de Linux”, ” Este foarte important”,
”Pentru mine”.
Altă modalitate de a crea fişiere cu cat, fără a folosi notaŃia <<c, este de a folosi
redirectarea ieşirii şi a tasta Ctrl-D, după ce s-a introdus în fişier textul respectiv.
Concatenarea fişierelor cu comanda cat. Dacă în linia de comandă a comenzii se
specifică un număr de fişiere, dintre care ultimul este precedat de semnul >, se realizează
concatenarea fişierelor specificate înaintea ultimului şi ultimul fişier va conŃine rezultatul
concatenării.
Exemplu. SecvenŃa:
$cat fis1 fis2 fis3 >fis
Realizează concatenarea fişierelor fis1 fis2 fis3 în fişierul fis.
Dacă la redirectare se foloseşte notaŃia >>fis, textul respectiv se va adăuga la
sfârşitul fişierului, fără a distruge conŃinutul lui.
Exemplu. SecvenŃa:
$cat fi>fis
Cursul de Linux
Este foarte important
Pentru mine
Ctrl-D
se crează acelaşi fişier ca în exemplul anterior.

45
Legarea în pipe (“conductă”) are sintaxa:
$comanda1 | comanda2
Efectul este următorul: comenzile comanda1 şi comanda2 vor fi lansate în execuŃie
simultan, ieşirea lui comanda1 fiind utilizată ca intrare de comanda2. comanda2 poate
începe efectiv execuŃia numai după ce are un element de informaŃie de la comanda1 (dar nu
trebuie să aştepte până când comanda1 termină de produs tot ce va furniza ca ieşire).
Ieşirea pentru comanda1 (descriptor de fişier 1) este un fişier (o structură numită pipe) şi
acelaşi fişier va fi intrare pentru comanda2 (descriptor de fişier 0). Mecanismul pipe este
frecvent utilizat în Linux pentru combinarea unor comenzi.
Exemplu. SecvenŃa:
$ls -l|grep ilflorea
Va afişa fişierele din directorul curent ale căror proprietar este utilizatorul
ilflorea. Comanda grep o vom studia într-un modul următor. În acest
exemplu, are ca efect căutarea cuvîntului ilflorea în ieşirea comenzii ls -
l. Acelaşi efect se poate obŃine şi prin secvenŃa următoare:
$ls –l >fis
grep ilflorea fis
Se poate utiliza o legare în pipe a mai multor comenzi, de forma:
$comanda_1|comanda_2 |...comanda_i|comanda_i+1...|comanda_n
În această situaŃie, ieşirea lui comanda_i este utilizată ca intrare de comanda_i+1.
Exemplu. SecvenŃa:
$ls –l /home/ilflorea |grep ilflorea | sort +24
Va afişa fişierele din directorul /home/ilflorea ale căror proprietar este
utilizatorul ilflorea, ordonate după dimensiune. Comanda sort o
vom studia în această unitate de învăŃare.

Transmiterea stderr în acelasi loc cu stdout foloseşte sintaxa 2>&1.


Exemplu. SecvenŃa:
$ls /home/ilflorea >outcom.txt 2>&1
Lucrează astfel:
ls /usr/bin listeaza continutul lui /home/ilflorea.
> redirecteaza iesirea comenzii ls (stdout) catre fisierul outcom.txt.
2>&1 transmite fisierul cu descriptorul 2(stderr), la aceeasi locaŃie cu fişierul
cu descriptorul 1 (stdout).
Deoarece stdout a fost redirectat, toate mesajele de eroare vor fi si ele trimise
în fisierul outcom.txt.

Exemplu. Lansăm comanda ls pentru un director inexistent.


$ls /home/ilfloreax >outcom.txt 2>&1
$cat commands.txt
ls: /home/ilfloreax: No such file or directory
În acest exemplu, am presupus ca nu există directorul /home/ilfloreax.

Redirectarea în acelaşi timp a lui stderr şi stdout foloseşte sintaxa &>.

46
Exemplu.
$ls /home/ilfloreax &>outcom.txt
$cat outcom.txt
ls: /home/ilfloreax: No such file or directory
Lucrează astfel:
&>outcom.txt redirectează atât stdout cât şi stderr către fişierul
outcom.txt.
Dacă nu se redirectează ambele fişiere, atunci mesajele de eroare vor fi transmise
la terminal.

Exemplu.
$ ls /home/ilfloreax >outcom.txt
ls: /home/ilfloreax: No such file or directory
În acest caz, erorile vor fi afişate pe ecran, şi toate ieşirile vor fi transmise în
fişierul outcom.txt.

Se mai pot utiliza construcŃiile:


i>&j redirecteaza descriptorul de fisier i la j. Toate ieşirile, care în mod uzual sunt trimise
fişierului cu descriptorul i, vor fi trimise catre cel cu descriptorul j.
>&j redirectează ieşirile către fişierul cu descriptorul j.
ExecuŃia unei comenzi fără transmiterea ieşirii. Există situaŃii în care:
- O comandă crează o mulŃime de date care nu sunt necesare.
- Dorim să vedem numai mesajele de eroare (dacă acestea există).
- Suntem interesaŃi să vedem dacă comanda respectivă se execută cu succes sau nu.
În aceste cazuri, se face redirectarea iesirii catre fisierul nul, /dev/null.
Exemplu.
$ls /home/ilflorea >/dev/null
Se verifică dacă există directorul /home/ilflorea.

Să ne reamintim...
Redirectarea intrărilor şi ieşirilor este un mecanism prin care se modifică fişierele
standard de intrare şi/sau de ieşire ale unei comenzi. În loc de tastatură, respectiv
ecranul monitorului, intrarea, respectiv ieşirea poate fi un fişier oarecare. Acest
mecanism este util atunci cind iesirea unei comenzi este intrare pentru o altă
comandă.
Cu acest mecanism, cu comanda cat, se pot crea fişiere text în linia de
comandă.
Un alt fişier standard care poate fi redirectat este cel de erori; de exemplu, când
se doreşte păstrarea tuturor erorilor într-un fişier, acesta este redirectat cu ieşire şi
adăugare la sfârşit într-un alt fişier. De asemenea, există şi situatia în care nu ne
interesează mesajul de eroare al unei comenzi şi atunci fişierul de ieşire este
fişierul nul.
Un alt mecanism de acest tip este legarea în pipe a comenzilor, prin care se
utilizează o structură specială, cu acelaşi nume, care pentru o comandă este fişier
de intrare, iar pentru alta de ieşire.

47
1. CreaŃi cu comanda cat câte un fişier prin ambele metode. AdăugăŃi text la
fişierele create prin ambele metode.
2. ScrieŃi o legare în pipe a două comenzi, prin care să se caute şi să se afişeze
informaŃii despre toate fişierele dintr-un director, al căror nume conŃine şirul de
caractere fis.
3. ScrieŃi o secvenŃă de concatenare a trei fişiere aflate în directoare diferite şi
fişierul în care se face concatenarea să fie în directorul gazdă.
M2.U2.5. Copierea, mutarea şi redenumirea fişierelor
Copierea unui fişier se face cu comanda cp (“copy”). Prin copiere se crează un nou fişier cu
acelaşi conŃinut. Are sintaxa:
cp [opŃiuni] nume1 nume2
OpŃiunile comenzii sunt:
-a (“archive”): se foloseşte acestă opŃiune pentru a se copia odată cu fişierul şi
caracteristicile lui.
-b (“backup”): dacă nume2 este numele unui fişier deja existent, se face o copie de
siguranŃă a cestuia.
-f („force”): se face copierea chiar dacă atributele lui nume2 interzic acest lucru.
-i („interactive”): utilizatorul este întrebat atunci când se face suprascrierea.
-p („preserve”): se face copierea şi a drepturilor, concept care îl vom discuta în această
unitate de învăŃare.
-r („recursive”): se face copierea recursivă.
-u („update”): se face copierea numai dacă nume2 nu există sau este mai vechi decât
nume1.
Comanda are întotdeauna cel puŃin două argumente.
• Dacă ambele argumente reprezintă nume de fişiere obişnuite, nume2 va fi un fişier nou (i
se alocă nod index şi blocuri de date proprii), cu conŃinut identic cu cel al fişierului nume1.
• Dacă nume1 este un fişier obişnuit, iar nume2 desemnează un catalog, atunci în catalogul
nume2 se creează o intrare cu numele nume1 pentru copia fişierului.
• Dacă atât nume1 cât şi nume2 reprezintă nume de cataloage, atunci comanda cp se poate
executa doar dacă este prevăzută şi opŃiunea -R sau -r, iar efectul este crearea în nume2 a
unui catalog nume1 şi copierea recursivă a fişierelor din catalogul original nume1 în
catalogul nou creat.
ObservaŃie. Numele de fişier nume1 poate fi definit şi ca un şablon, prin folosirea
caracterelor * şi ?. Dacă este prezent caracterul *, respectiv ?, acesta poate fi înlocuit cu
orice şir de caractere, respectiv cu un caracter, cu condiŃia ca numele obŃinut să existe în
structura respectivă.
Exemplu. Relativ la structura din figura 2.2.2. ; dacă se tastează:
$cd /home/ilflorea
$cp ./so/fis1 ./so/exem/linux
Se crează un nou fişier cu numele fis1 în directorul
/home/ilflorea/so/exem/linux, care are acelaşi conŃinut cu
fişierul cu numele fis1 din directorul /home/ilflorea/so.

48
Exemple Dacă se tastează:
$cd /home/ilflorea
$cp ./so/fis1 ./so/exem/linux/fis12
Se crează un nou fişier cu numele fis12 în directorul
/home/ilflorea/so/exem/linux, care are acelaşi conŃinut cu
fişierul cu numele fis1 din directorul /home/ilflorea/so.
Dacă se tastează:
$cd /home/ilflorea
$cp ./so/*fis? ./so/exem/linux1
Se crează noile fişiere cu numele fis1,abfis2, afis2 în directorul
/home/ilflorea/so/exem/linux1, care au aceleaşi conŃinuturi cu
cele din directorul /home/ilflorea/so.
Dacă se tastează:
$cd /home/ilflorea/so
$cp –r ./exem /home/ilflorea
Se creează o sub-structură de directoare şi fişiere în /home/ilflorea, care
conŃine sub-structura cu rădăcina în /home/ilflorea/so/exem (Figura
2.2.2).

/home/ilflorea

/so /so1 fis3 fis1


afis2
fis1 /exem abfis2

/Linux /Linux1

/Awk /Grep fis2

Figura 2.2.2. Structură de directoare şi fişiere


Schimbarea numelui (poziŃiei) unui fişier se face cu comanda mv (“move” ). Sintaxa
comenzii este:
mv [opŃiuni] sursa destinatie
• Ca şi comanda cp, mv are minimum 2 parametri. Deosebirea între cele două comenzi, este
aceea că mv nu creează un fişier nou ci, pentru un fişier existent, doar schimbă numele său
sau poziŃia sa într-un sistem de fişiere. Din acest punct de vedere, se poate considera că mv
este o operaŃie asupra cataloagelor.
• Dacă sursă şi destinatie sunt nume de fişiere obişnuite, atunci intrarea din catalog
cu numele sursă dispare şi se creează o intrare cu numele destinatie.
• Dacă sursă este nume de fişier obişnuit sau de catalog, iar destinatie este nume de
catalog, dispare intrarea sursa şi se creează o intrare cu numele sursa în catalogul
destinatie. În acest caz, trebuie să se folosească opŃiune –t.
• În situaŃia că sursă este un catalog, prin această comandă întreaga sub-ierarhie sursă îşi
schimbă poziŃia.
• Dacă intrarea destinaŃie există, ea este suprascrisă. Se poate evita suprascrierea prin
utilizarea opŃiunii -i, la fel ca şi la comanda cp.
ObservaŃie: Comanda mv nu poate realiza traversarea sistemelor de fişiere în situaŃia în care

49
sursă este un catalog (deci cataloagele nu se pot muta dintr-un sistem de fişiere în altul).
Pentru fişierele obişnuite, într-un astfel de caz se creează un alt fişier (se alocă nod index şi
blocurile de date necesare) în noul sistem de fişiere.
Exemple. Relativ la structura din figura 2.2.2. ,dacă se tastează:
$cd /home/ilflorea/so
$mv fis1 fis2
Se va şterge intrarea fis1 din directorul /home/ilflorea/so şi se va crea
o noua intrare cu numele fis2 în acelaşi director, care va corespunde unui
fişier cu acelaşi conŃinut cu vechiul fis1.
Dacă se tastează:
$cd /home/ilflorea
$mv ./so/fis1 –t ./so/exem/linux
Se crează o nouă intrare în directorul /home/ilflorea/so/exem/linux
pentru fişierul fis1 şi se distruge intrarea corespunzătoare din directorul
/home/ilflorea/so.Fişierul va păstra vechiul conŃinut.

M2.U2.3. Legături simbolice


Sub sistemele Linux, conceptul de partajare a fişierelor de către mai mulŃi utilizatori
este mult mai dezvoltat decât sub alte sisteme de operare. El se sprijină pe conceptele de
legătură şi drepturi de acces la fişiere, pe care le vom dezvolta în continuare.
Fiecare utilizator îşi poate construi propria sa structură de directoare şi fişiere în
directorul său gazdă. Pentru ca un fişier să poată fi partajat de mai mulŃi utilizatori, el trebuie
să aparŃină structurilor corespunzătoare acestora. În acest sens, apare problema ca un fişier să
fie fiul mai multor directoare. Pentru a se evita apariŃia de informaŃii redundante despre acel
fişier, informaŃiile sunt păstrate într-un director care aparŃine structurii utilizatorului care a
creat acel fişier şi în celelalte directoare se crează câte o legătură către fişierul respectiv. De
asemenea, în cadrul structurii de fişiere a unui utilizator, atunci când o aplicaŃie lansată dintr-
un director, foloseşte un fişier dintr-un alt director, poate utiliza în locul căii către acel fişier o
legătură simbolică la acesta.
Există două tipuri de legături: fixe (“hard”), care se creează implicit şi
simbolice. Legăturile fixe reprezintă un alt nume dat unui fişier; legăturile simbolice
funcŃionează ca scurtaturi (“shortcut”) către un anumit fişier. Legăturile fixe pot funcŃiona la
nivelul unui singur sistem de fişiere local, pe când cele simbolice pot lucra peste mai multe
sisteme de fişiere. Din aceste cauze, cele simbolice sunt cel mai des folosite.
Crearea unei noi legături pentru un fişier se face cu comanda ln (“link” ), care are
sintaxa:
ln [-fs] numecale [legătură]
sau:
ln [-fs] numecale... catalog
• Comanda este înrudită cu cp în sensul că produce noi intrări în catalog, dar nu produce şi o
copiere fizică a fişierului.
• Dacă se foloseşte prima formă sintactică şi sunt prezente ambele argumente (fără opŃiuni),
atunci noua intrare de catalog apare sub numele legătură.
• Dacă al doilea argument lipseşte, legătura creată în catalogul curent va avea acelaşi nume ca
şi ultima componentă din nume_cale.
• Dacă se foloseşte a doua formă sintactică, atunci în catalog se creează legături având ca
nume ultimele componente din lista de nume_cale.

50
O legătură simbolică este de fapt un fişier text, al cărui conŃinut este nume_cale şi al cărui
nume este legătură (sau ultima componentă din nume_cale). Legăturile simbolice pot
traversa sistemele de fişiere. Nu se pot crea legături fixe spre un catalog. Doar
superutilizatorul poate forŃa această operaŃie prin opŃiunea -f (“force” ).
Exemplu. Relativ la structura din figura 2.2.2. ; dacă se tastează:
$cd /home/ilflorea
$ln –s /usr/local/bin/fis myfis
$ls -l myfis
Lrwxrvxrwx 1 ilflorea prof 19 Oct 17 12:02
myfis ->/usr/local/bin/fis
În catalogul gazdă al utilizatorului s-a creat o legătură simbolică, myfis, spre
fişierul /usr/local/bin/fis. Se observă că prin comanda ls –l,
lungimea fişierului myfis este afişată a fi 18, ceea ce corespunde cu numărul de
caractere din numele de cale dat.

1. CopiaŃi recursiv un director în directorul gazdă.


2. CreaŃi o legătură simbolică din directorul gazdă către un fişier dintr-un alt director

Să ne reamintim...
Copierea unui fişier se face cu comanda cp.Cu opŃiunea –r, se face şi copierea
recursivă. Schimbarea numelui (poziŃiei) unui fişier se face cu comanda mv. Sub
sistemele Linux conceptul de partajare a fişierelor de către mai mulŃi utilizatori este
mult mai dezvoltat decât sub alte sisteme de operare; unul dintre conceptele pe care
se sprijină este cel de legătură, prin care un fişier poate fi fiul mai multor directori.
Crearea legăturilor la un fişier se face cu comanda ln.
M2.U2.7. Drepturi de acces
Dacă se tastează comanda ls -l cale, pentru fiecare fişier, după primul caracter
urmează un grup de 9 caractere, care definesc drepturile de acces la fişierul respectiv.
În raport cu un fişier sau director, din punct de vedere al drepturilor, utilizatorii se împart în
trei categorii:
• proprietarul fişierului, notat cu u ( user).
• grupul de utilizatori, notat cu g ( group), cu drepturi specifice, de obicei mai slabe decât
ale proprietarului, dar mai puternice decât ale restului utilizatorilor.
• restul utilizatorilor, notat cu o (others), cei care nu sunt în primele două categorii.
Pentru toŃi utilizatorii se foloseşte notaŃia a (all), echivalentă cu combinaŃia ugo.
Exemplu. Presupunem că avem un fişier cu notele studenŃilor dintr-o anumită
grupă la o disciplină. Proprietarul fişierului este numele de user al profesorului
care a predat disciplina, grupul este format din numele de user ale studenŃilor care
au susŃinut examen la disciplina respectivă.
Fiecare utilizator are asociat un identificator unic UID (User Identification), care este
un număr natural. De asemenea, grupurile de utilizatori se identifică prin numere numite GID-
uri (Group IDentification). Un utilizator aparte, cu drepturi depline asupra tuturor fişierelor
este root sau superuserul. Pentru fiecare categorie de utilizatori, fişierul permite trei drepturi:
(i) dreptul de citire, notat cu r (read)

51
(ii) dreptul de scriere, notat cu w (write) care include crearea de subdirectori, ştergerea de
subdirectori, adăugarea sau ştergerea de intrări în director, modificarea fişierului etc.
(iii)dreptul de execuŃie, notat cu x (execution) care permite lansarea în execuŃie a unui
fişier. Acest drept, conferit unui director, permite accesul în directorul respectiv (cd) .
În consecinŃă, pentru specificarea drepturilor de mai sus asupra unui fişier sau director sunt
necesari 9 biŃi. Reprezentarea externă a acestei configuraŃii se face printr-un grup de 9
caractere rwxrwxrwx,în care absenŃa unuia dintre drepturi la o categorie de utilizatori este
indicată prin - (minus).
Modul de atribuire a acestor drepturi se poate face cu ajutorul comenzii chmod. Cea
mai simplă formă a ei este:chmod mod fisier
unde mod poate fi absolut sau simbolic. În cazul absolut, este un întreg reprezentat în
sistemul de numeraŃie 8. În reprezentare binară, prima grupă de 3 biŃi indică drepturile
proprietarului(user-ului), cea de-a doua indică drepturile grupului, iar cea de-a treia cifră
indică drepturile restului utilizatorilor. Corespunzător unei anumite cifre octale, drepturile
setate sunt prezentate în tabelul 2.2.1. (simbolul – înseamnă că dreptul respectiv nu este
setat).
Număr Permisiune
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx
Tabelul 2.2.1. Codificarea drepturilor în cifre octale
Modul simbolic este o combinaŃie între literele u,g,o,r,w,x şi semnele + (acordarea unui
drept), - (ridicarea unui drept).
Exemple. Comanda:
$chmod 755 fis1
fixează pentru fişierul fis1 din directorul curent, toate drepturile pentru user, de
citire şi execuŃie pentru grup şi ceilalŃi utilizatorii. În urma acestei comenzi,
drepturile asupra fişierului fis1 vor deveni: rwxr-xr-x (în reprezentare
binară 755 este 111101101).
Pentru a se da grupului de utilizatori drepturi de scriere, se tastează:
$chmod g+w fis1
Pentru a se lua grupului de utilizatori drepturile de execuŃie, se tastează:
$chmod g-x fis1
Dacă se dă comanda:
$chmod a-r fis1
se va lua dreptul de citire al tuturor utilizatorilor.
Drepturi implicite. În momentul intrării în sistem, unui utilizator i se vor acorda nişte
drepturi implicite pentru fişiere nou create. Toate fişierele şi directoarele create de utilizator
pe durata sesiunii de lucru îl vor avea ca proprietar, iar drepturile vor fi cele primite implicit.
Fixarea drepturilor implicite sau aflarea valorii acestora se poate face folosind comanda
umask. Drepturile implicite sunt stabilite scăzând (octal) masca definită prin umask din 777.
Pentru a se afla valoarea măştii se lansează comanda umask. Rezultatul este afişarea măştii,

52
de regulă 022. Deci drepturile implicite vor fi: 777-022=755, adică userul are toate drepturile,
iar grupul şi restul vor avea doar drepturi de citire şi de execuŃie.
Exemplu. Dacă se doreşte schimbarea acestei măşti pentru a da userului toate
drepturile, grupului drept de citire şi execuŃie iar restului nici un drept,
(corespunzătoare constantei octale 750), se va da comanda
$umask 027 (777-027=750).
Efectul ei va rămâne valabil până la un nou umask sau până la încheierea
sesiunii.

Să ne reamintim...
Unul dintre conceptele fundamentale în partajarea fişierelor sub Linux, este cel de
acordarea de drepturi privind modul de utilizare al fişierelor. Astfel, se pot seta
drepturi de citire, scriere sau execuŃie pentru proprietarul fişierului, pentru un
anumit grup de utilizatori şi respectiv pentru restul utilizatorilor. Comanda prin
care se pot modifica aceste drepturi este chmod. De asemenea, există comanda
umask prin care se pot stabili drepturi implicite.

1.ScrieŃi o comandă chmod prin care, relativ la un fişier să se seteze: toate


drepturile pentru proprietar, dreptul de citire pentru grupul de utilizatori şi nici un
drept pentru restul utilizatorilor; se va folosi reprezentarea numerică a drepturilor.
2. Folosind reprezentarea simbolică a drepturilor, să se scrie comenzile chmod
care să seteze toate drepturile pentru grup şi dreptul de citire pentru restul
utilizatorilor.
3. Să se scrie o comandă umask,prin care să se seteze drepturile implicite
următoarele: toate drepturile pentru proprietar, drepturi de citire pentru grup, nici
un drepr pentru restul utilizatorilor.
M2.U2.8. Căutarea fişierelor într-o structură de directoare
Căutarea se face cu comanda find a cărei sintaxă generală este:
find cale criterii [actiune]
cale specifică numele directorului ce reprezintă rădăcina structurii în care se face căutarea.
criterii reprezintă specificaŃiile după care se face căutarea.
actiune specifică eventuale prelucrări care se fac asupra fişierelor găsite.
Căutarea dupa nume se face cu opŃiunea –name. OpŃiunea -name este “case
sensitive”; se foloseşte opŃiunea -iname dacă nu se doreşte să se facă distinŃie între literele
mari şi cele mici. În căutarea fişierelor, se pot folosi şabloane şi în acest caz numele de fişier
este specificat între apostroafe.
Se foloseşte -regex în locul lui -name pentru a face căutarea pentru fişiere al căror nume
trebuie să îndeplinească un şablon definit printr-o expresie regulată, concept care îl vom
discuta într-un modul următor.
Exemple.
$find / -name fisier
va lista toate fişierele dintr-un sistem de fisiere (de pe un disc) al căror nume este
fisier ; această comandă va căuta în toate directoarele la care este permis
accesul; dacă nu este permis accesul se va semnala acest lucru.
Dacă nu se doreşte să se facă distinŃie între literele mari şi cele mici, se tastează:
$find / -iname fisier
Această comandă va include în rezultatul căutării şi Fisier sau fIsier , de

53
exemplu.
În căutarea fişierelor se pot folosi şi şabloane şi în acest caz numele de fişier este
specificat între apostroafe.
$find / -name ‘fis*’
listează toate fişierele din sistem al căror nume începe cu caracterele `fis’.
$find / -name ‘fis???’
listează toate fişierele din sistem al căror nume începe cu caracterele `fis’,
urmate de trei caractere oarecare.
$ find /home/ilflorea -name ‘*fis*’
listează toate fişierele din din structura care porneşte din directorul /home/
ilflorea cu textul `fis' inclus în nume.
$find . -regex `.*\(a1\|a2\).*`
listează toate fişierele(inclusiv calea) din structura care porneşte din directorul
curent al căror nume contine şirurile `a1` sau `a2` oriunde în numele lor.
Căutarea fişierelor după dimensiune se face cu opŃiunea -size, urmată de un
număr natural, opŃional precedat de un semn. Avem trei cazuri:
- când este precedat de semnul `+`, rezultatul căutării va fi toate fişierele care au dimensiunea
mai mare decât numărul dat;
- când este precedat de semnul `-`,vor fi selectate toate fişierele a căror dimensiune este mai
mică decât numărul dat;
- când nu este specificat nici un semn rezultatul va consta din toate fişierele care au exact
aceeaşi dimensiune.
Unitatea implicită este blocul de 512 baiŃi; dacă numărul specificat anterior este urmat de
caracterul k, respectiv b atunci unitatea de măsură este kilobaitul, respectiv baitul. Se
foloseşte opŃiunea -empty pentru a se găsi toate fişierele de dimensiune nulă.
Exemple.
$find ~ -size +1000k
va lista toate fişierele din structura care porneşte din directorul gazdă care au mai
mult de 1000 kilobaiŃi.
$find ~ -size -500b
va lista toate fişierele din structura care porneşte din directorul gazdă care au o
dimensiune mai mică de 500 baiŃi
$find / -size 42
va lista toate fişierele din sistem care au o dimensiune de 42 de blocuri a câte 512
baiŃi.
$find ~ -empty
va afişa toate fişierele vide din structura care porneşte din directorul gazdă.
Căutarea fişierelor după momentul modificării. Pentru a găsi fişiere modificate
într-un interval de timp specificat, se folosesc opŃiunile -mtime sau -mmin; argumentul
folosit cu -mtime specifică numărul de zile, pe când cel cu –mmin specifică numărul de
minute.
Exemple.
$find /usr/local -mtime -1
va lista toate fişierele din structura care porneşte din directorul /usr/local
care au fost modificate în ultimele 24 de ore.
$find /usr -mmin 5
va lista toate fişierele din structura care porneşte din directorul /usr care au
fost modificate în ultimele 5 minute.

54
Pentru a specifica un interval de timp, numărul utilizat ca argument, va fi precedat de semnul
+, respectiv -, având semnificaŃia selectării tuturor fişierelor pentru care timpul de la
ultima modificare este mai mare sau egal, respectiv mai mic sau egal decât argumentul
specificat.
Exemple.
$find /usr/local -mtime +1 -2
va afişa toate fişierele din structura care porneşte din directorul/usr/local
care au fost modificate în ultimele 24 de ore.
$find /usr -mmin -5
va lista toate fişierele din structura care porneşte din directorul /usr care au fost
modificate în ultimele 5 minute.
OpŃiunea -daystart va specifica faptul că contorizarea timpului se va face
începând din ziua curentă, în loc de ziua trecută.
Exemple.
$find ~ -mtime 2 -daystart
va lista toate fişierele din structura care porneşte din directorul gazdă care au fost
modificate de acum două zile.
$find /usr -mtime +356 -daystart
va lista toate fişierele din structura care porneşte din /usr care au fost
modificate de cel mult un an.
$find ~ -mtime 2 -mtime -4 -daystart
va lista toate fişierele din structura care porneşte din directorul gazdă, care au fost
modificate acum două până la patru zile. În exemplul precedent, am combinat
opŃiunile -mtime 2 şi -mtime -4.
OpŃiunea -newer va fi folosită pentru a găsi fişierele mai noi decât un fişier dat.
Exemplu.
$find ~ -newer /etc/fis
va lista toate fişierele din structura care porneşte din ~ care au au data de creare
mai recentă decât fişierul /etc/fis.
Pentru a căuta fişiere a căror dată de creare este ulterioară unei date specificate, se va folosi
comanda touch pentru a introduce acea dată într-un fişier, care va fi argument pentu
opŃiunea -newer.
Exemplu.
$touch -t 04012010 /tmp/timestamp
$find ~ -newer /tmp/timestamp
va căuta toate fişierele din structura care porneşte din directorul gazdă care au
fost modificate după 1 aprilie 2010.
OpŃiunea –used este folosită pentru a găsi fişiere accesate după un număr de zile de la
ultima modificare.
Exemplu.
$find ~ -used +100
va căuta fişierele din structura care porneşte din directorul gazdă care au fost
accesate după cel puŃin 100 de zile de la data ultimei modificări.

55
Căutarea fişierelor după proprietar. Cu opŃiunea –user, respectiv –group se pot
căuta fişiere care aparŃin unui anumit utilizator, respectiv unui grup de utilizatori.
Exemplu.
$find /usr/local/fonts -user florea
va lista toate fişierele din structura care porneşte din /usr/local/fonts care
aparŃin utilizatorului florea.
$find ~ -group info
va lista toate fişierele din structura care porneşte din directorul ~ al căror
proprietar este grupul info.
ExecuŃia de comenzi asupra fişierelor căutate se realizează cu opŃiunea -exec care are ca
argument o anumită comandă. Sfârşitul comenzii este marcat de caracterele ‘;’. Dacă se
foloseşte şirul '{}' în cadrul comenzii, acesta este înlocuit cu numele de fişier care a fost
găsit
Exemple.
$find . -name ’’*fis*’’ -exec rm ‘{}’ ‘;’;
va şterge toate fişierele care în numele lor conŃin subşirul fis, situate în
directorul curent sau în subdirectoarele acestuia.
$find ~/html/ -name '*.html' -exec grep linux `{}` `;`
va găsi toate fişierele din structura care porneşte din directorul ~/html/ cu
extensia .html şi va afişa liniile din aceste fişiere care conŃin textul `linux’ .
Pentru a se realiza comanda respectivă cu confirmare, se foloseşte -ok în locul
lui -exec.
$find ~ -used +365 -ok rm `{}` `;`
va găsi toate fişierele din structura care porneşte din directorul gazdă, care au fost
accesate la mai mult de un an de când au fost modificate şi va aştepta
confirmarea înainte de ştergere.
Căutarea fişierelor după tip se face cu opŃiunea -type c ; rezultatul este “true”
dacă tipul fişierului este c, un caracter care poate fi: f - fişier simplu; d - catalog; b - fişier
special bloc; c - fişier special caracter; p - “pipe” (canal) cu nume; s - “socket” (pentru
comunicarea în reŃea).
Exemplu. Pentru a lista numărul fişierelor din structura care porneşte din
directorul gazda se tastează:
$find ~ \! -type d|wc -l
Observăm legarea în pipe a comenzilor şi utilizarea operatorului de negare.
$ find /usr/share -type d | wc –l
va lista numărul directoarelor din structura care porneşte din directorul
/usr/share.
Căutarea fişierelor după mai multe criterii. Se pot combina mai multe opŃiuni
pentru a se găsi fişierele care îndeplinesc criterii multiple.
Exemple.
$find ~ -name 'fis*' -newer /etc/ultmod
va lista fişierele din structura care porneşte din directorul gazdă al căror nume
începe cu şirul `fis’şi care sunt mai noi decât fişierul /etc/ultmod
$find ~ -size +2000000c -regex '.*.[^gz]' -exec gzip
'{}' ';'
va comprima toate fişierele din structura care porneşte din directorul gazdă şi
care au o dimensiune de cel puŃin 2 megabaiŃi şi care nu au fost comprimate
folosind comanda gzip .

56
Alte optiuni:
a) -perm onum - “true” dacă drepturile de acces la fişier corespund exact numărului octal
onum.
b) -print - întotdeauna adevărată, are ca efect afişarea numelui fişierului curent (care
corespunde unui criteriu de căutare anterior specificat);
c) -ls - întotdeauna adevărată, are ca efect afişarea numelui de cale al fişierului curent şi
informaŃii suplimentare despre acesta (analog comenzii ls -li);
d) -prune - întotdeauna adevărată, are ca efect oprirea căutării la numele de cale curent,
dacă acesta este catalog (nu se caută recursiv);
1.ScrieŃi o comandă find care să şteargă toate fişierele din sistem care au fost
create anterior unei date specificate.
2. ScrieŃi o comandă find care să copieze într-un director dat toate fişierele din
structura de directoare şi fişiere a utilizatorului care au o dimensiune mai mare de
10 Mb.
3. ScrieŃi o comandă find care să afişeze numele tuturor fişierelor director din
structura de directoare şi fişiere a utilizatorului.
Să ne reamintim...
Comanda find oferă utilizatorilor sistemelor Linux posibilitatea căutării
fişierelor, într-o anumită structură, pe baza unor argumente exprimate prin opŃiunile
comenzii. Astfel se pot face căutări după numele fişierului, după data creerii, după
dimensiune etc. De asemenea, se pot specifica comenzi care să prelucreze rezultatu
căutării.

M2.U2.9. Test de evaluare a cunoştinŃelor.


MarcaŃi varianta corectă.

1. Prin care opŃiune a comenzii de creare de directoare, atunci când se specifică argumentl o cale,
se crează şi directoarele din calea respectivă:
a) -d c) –p
b) -f d) -r
2. Ştergerea unui catalog vid se face cu comanda:
a) rmd c) rmdir
b) rm d) rmpdir
3. Ştergerea unei structuri de directoare si fişiere, se face cu comanda (opŃiunea):
a) rm (-r) c) rmdir (-r)
b) rmdir (-p) d) rm (-p)
4. Cu ce opŃiune a comenzii ls, listarea se face în ordinea ultimei modificări a modului de acces
la fişier:
a) –a c) -c
b) - r d) -l
5. Care comanda realizeză concatenarea fişierelor:
a) cp c) ct
b) copy d) cat
6. Ce tip de redirectare a intrărilor şi ieşirilor crează o structură specială care este ieşire pentru o
comandă şi intrare pentru altă comandă:
a) Notată cu >>. c) conductă
b) Notată cu &>. d) socket
7. Cum se procedează pentru a nu se afişa mesajul de eroare al unei comenzi:

57
a) se redirectează ieşire c) se redirectează ieşire fişierului
fişierului de erori către de erori către /etc/null
/dev/null
b) se redirectează ieşire d) se redirectează ieşire fişierului
fişierului de erori către de erori către /usr/null
/proc/null
8. Ce sintaxă foloseşte redirectarea în acelaşi timp a lui stderr şi stdout :
a) @> c) $>
b) &> d) #>
9 Argumentul unei comenzi chmod care indică modul de setare a drepturilor, poatefi:
a) o constantă octală formată c) o constantă hexazecimală
din trei cifre formată din trei cifre
b) o constantă zecimalălă d) o constantă binară formată din
formată din trei cifre trei cifre
10. OpŃiunea utilizată în cadrul unei comenzi find, pentru a se căuta fişere numai în
directorul indicat ca argument, este:
a) -local c) -prune
b) -dir d) - proc

M2.U2.10. Rezumat. Linux oferă o mulŃime de comenzi pentru manipularea


structurilor de directoare. Astfel, există comenzi pentru creearea directoarelor,
afişarea directorului curent, schimbarea directorului curent sau modificarea poziŃiei
curente în ierarhia de directoare, ştergerea unui catalog vid sau ştergerea mai multor
fişiere sau directoare, afişarea conŃinutului unui catalog.
Redirectarea intrărilor şi ieşirilor este un mecanism prin care se modifică
fişierele standard de intrare şi/sau de ieşire ale unei comenzi. Acest mecanism este
util atunci cind iesirea unei comenzi este intrare pentru o altă comandă. Un alt fişier
standard care poate fi redirectat este cel de erori; de exemplu, când se doreşte
păstrarea tuturor erorilor într-un fişier, acesta este redirectat cu ieşire şi adăugare la
sfârşit într-un alt fişier. Când nu ne interesează mesajul de eroare al unei comenzi
atunci ieşirea este fişierul nul. Legarea in pipe a comenzilor utilizează o structură
specială, cu acelaşi nume, care pentru o comandă este fişier de intrare, iar pentru alta
de ieşire.
Sub sistemele Linux conceptul de partajare a fişierelor de către mai mulŃi
utilizatori este mult mai dezvoltat decât sub alte sisteme de operare; unul dintre
conceptele pe care se sprijină este cel de legătură, prin care un fişier poate fi fiul mai
multor directori. Crearea legăturilor la un fişier se face cu comanda ln. Un alt
concept fundamental în partajarea fişierelor sub Linux, este cel de acordarea de
drepturi privind modul de utilizare al fişierelor. Astfel, se pot seta drepturi de citire,
scriere sau execuŃie pentru proprietarul fişierului, pentru un anumit grup de
utilizatori şi respectiv pentru restul utilizatorilor. De asemenea, se pot stabili drepturi
implicite.
Sub Linux posibilitatea căutării fişierelor, într-o anumită structură, pe baza
unor argumente. Astfel se pot face căutări după numele fişierului, după data creării,
după dimensiune etc. De asemenea, se pot specifica comenzi care să prelucreze
rezultatul căutării. Această facilitate este utilă administratorilor, atunci când vor să
obŃină informaŃii despre ocuparea discurilor cu diverse fişiere.

58

S-ar putea să vă placă și