User Tools

Site Tools


basic-unix:capitole:capitol-05

5. Lucrul cu fișiere

Sistemul de fișiere reprezintă componenta cea mai vizibilă din cadrul unui sistem de operare. Un utilizator folosește sistemul de fișiere prin operații de creare, ștergere, modificare și investigare a fișierelor. Mai mult, un utilizator poate administra sistemul de fișiere prin configurarea de permisiuni, prin stabilirea de cote de sistem de fișiere și prin acțiuni de formatare și montare de sisteme de fișiere.

Subiecte abordate

  • Fișiere: definiții, tipuri, operații
  • Operații pe fișiere
  • Date și metadate
  • Globbing
  • Permisiuni
  • Comenzi avansate de lucru cu fișiere: find, stat, ln

Utilitare folosite

  • mkdir, rmdir, touch, ls, rm, cp
  • stat, chmod, chown
  • find
  • ln

Resurse utile

  • TODO
  • TODO

Exerciții

Demo-uri

Despre căi relative și căi absolute

Globbing în sistemul de fișiere

Folosirea comenzii find cu diverși parametri pentru a parcurge sistemul de fișiere.

Schimbarea permisiunilor și ownerilor în sistemul de fișiere

Escaping: ghilimele, apostrof, backslash

Creare ierarhie de directoare

Creați, în directorul home al utilizatorului training, structura de mai jos:

supermarket/
├── curatat/
│   ├── pronto - lemn curat
│   └── solutie curatat ferestre
└── mancare/
    ├── -- -> lactate/lapte batut
    ├── carne/
    │   └── -10 grade sunca
    ├── fructe/
    │   └── castraveti spanioli
    └── lactate/
        └── lapte batut

Intrarea -- este un link simbolic, adică numele link-ului simbolic trebuie să fie --.

Intrările care se termină în / (slash) sunt directoare (supermarket/, curatat/, mancare/, carne/, fructe/, lactate/).

Restul de intrări sunt fișiere obișnuite (regular files).

Pentru a valida structura creată, folosiți, din directorul home al utilizatorului student, comanda

tree -F supermarket

Actualizare timpi

Pe structura de directoare creată anterior configurați timpi astfel:

  • pe intrările din mâncare, mai puțin link-ul simbolic, configurați ca timp de acces miezul nopții la Crăciun 2013
  • pe intrări de curățat configurați ca timp de modificare miezul nopții la Revelion 2013

Nu e nevoie să folosiți o comandă specială care să se aplice pe toate intrările. Luați intrările la rând și modificați timpii.

Pentru modificarea timpilor folosiți comanda touch.

Pentru a verifica timpii de acces folosiți comanda stat.

Adăugăm în sistem utilizatorul ana. Pentru aceasta, ne autenficăm ca root și apoi folosim comanda adduser. Adică rulăm comenzile:

$ sudo su
# adduser ana

Ca root, actualizăți următoarele metadate pe link-ul simbolic:

  • modificați timpii la miezul nopții Halloween 2013
  • modificați deținătorul link-ului în ana

Pentru modificarea deținătorului unui link, folosiți comanda chown. Comanda chown poate fi rulată doar de utilizatorul root.

Exemple de rulare a comenzii chown sunt:

chown tony mydata.iso        # change owner user of file mydata.iso to tony
chown tony:players icon.bmp  # change owner user of file icon.bmp to tony and owner group to players

Creare ierarhie de fișiere/directoare

Creați în home-ul utilizatorului training următoarea ierarhie de fișiere și directoare (\ = director; - = fișier):

training
\Teme
  \Matematica
       \Analiza
           - diagrama_euler.jpg
           - tema1
           - tema2
           - tema3.0
           - tema4.2
       \Algebra
  \Geografie
       \Continente
           \Europa
               \Europa de Est
                    \Romania
                    \Bulgaria
           \Asia
       - harta romaniei.jpg
       - harta europei.png
  \Istorie
       \Statistica si probabilitati
           - lanturi_markov.html
           - transformate_fourier.pdf
       - Mihai Viteazul.jpg
       - A I Cuza.png
  \Informatica
       \Python
       \C\C++
           - Introducere in algoritmi.pdf
           - Dennis Ritchie.jpg
           - tema_backtracking.c
       \JAVA

Folosiți manualul pentru a căuta argumente ale comenzilor ce v-ar putea ușura munca.

Folosiți comanda

tree ~/Teme

pentru a verifica în permanență corectitudinea ierarhiei.

Redenumiți fișierul tema1 în tema_integrale.

Mutați harta romaniei în directorul corespunzător țării din directorul Geografie.

Ștergeți directorul JAVA.

Mutați întregul director numit Statistica si probabilitati (cu tot cu fișierele conținute), în directorul Matematica.

Creați în /home/training/Teme un director numit Imagini în care copiați toate fișierele cu extensia .jpg.

Ștergeți fișierele, din toată ierarhia creată anterior, al căror nume se termină cu cifre.

Afișare fișiere

Dorim să afișăm fișiere după diferite considerente.

Folosiți find pentru a afișa toate fișierele din ierarhia /etc/ (adică toate fișierele din /etc/, din subdirectoarele acestuia, din subdirectoarele subdirectoarelor etc.). Indicație: Folosiți opțiunea -type a comenzii find.

Folosiți find pentru a afișa toate fișierele din ierarhia /etc/ al căror nume începe cu litere între a și d. Indicații: Folosiți opțiunea -name a comenzii find. Folosiți construcția [a-d]* pentru a indica un șir care începe cu o literă între a și d urmată de orice altceva.

Folosiți find pentru a afișa toate fișierele din ierarhia /etc/ al căror nume începe cu litere între a și d și are extensia .conf (adică se încheie în șirul .conf). Indicație: Porniți de la comanda anterioară și extindeți argumentul transmis opțiunii -name.

Folosiți find pentru a afișa toate fișierele din ierahia /etc/ care sunt deținute de utilizatorul root și grupul root. Indicație: Folosiți optiunea -user a comenzii find.

Folosiți find pentru a a afișa toate fișierele din ierahia /etc/ care sunt deținute de utilizatorul root și un grup diferit de root. Indicație: Folosiți ! (semnul exclamării în fața opțiunii necesare pentru a o nega).

Folosiți find pentru a a afișa toate fișierele din ierahia /etc/ pentru care others au permisiuni de orice fel (adică others au oricare dintre permisiunile read, write sau execute). Indicații: Urmăriți opțiunea -perm în pagina de manual a comenzii find. Urmăriți și exemplele de folosire căutând după șirul EXAMPLES.

Folosiți find pentru a a afișa toate fișierele din ierahia /etc/ pentru care others nu au nici un fel de permisiuni (de orice fel: read, write sau execute). Indicație: Folosiți ! (semnul exclamării în fața opțiunii necesare pentru a o nega).

Afișare informații despre fișiere

Dorim să afișăm informații despre fișiere folosind comanda stat, comandă dedicată exact obținerii de informații despre fișiere.

Afișați pentru fișierul /etc/passwd doar dimensiunea. Indicație: Folosiți comanda stat împreună cu opțiunea --format (sau -c, forma scurtă a acestei opțiuni).

Afișați pentru fișierul /etc/passwd inode-ul, dimensiunea și uid-ul, separate prin , (virgulă).

Altă utilizare find

Căutați, folosind find, toate fișierele cu următoarele tipuri:

  • symlink (l) în /usr/share/
  • block (b) în /dev
  • character (c) în /dev
  • socket (s) în /var/lib
  • pipe (p) în /var/lib

Folosiți comenzi în forma sudo find ... -type ....

Altă ierarhie

Creați în directorul /home/training următoarea structură de directoare /home/training/the/unix/file/system/sure/it/corrupts/your/data/but/look/how/fast/it/is.

Folosiți opțiunea --parents a comenzii mkdir.

Intrați în directorul /home/training/the/unix/file/system/sure/it/corrupts/your/data/but/look/how/fast/it/is și creați trei fișiere, denumite ext2, ext3 și ext4.

Modificați data când fișierul ext4 a fost accesat și modificat la 2010.05.23 15:25.

Folosiți comanda touch cu parametrii corespunzători și folosiți comanda ls -l pentru verificare.

basic-unix/capitole/capitol-05.txt · Last modified: 2016/05/24 12:31 by rdobrescu