This shows you the differences between two versions of the page.
uso:laboratoare:laborator-02:files [2022/10/16 19:43] liza_elena.babu [Crearea directoarelor] |
uso:laboratoare:laborator-02:files [2024/10/16 09:29] (current) razvan.deaconescu [Lucrul cu fișiere și directoare] |
||
---|---|---|---|
Line 34: | Line 34: | ||
===== Ierarhie de fișiere ===== | ===== Ierarhie de fișiere ===== | ||
- | Un exemplu de ierarhie de fișier este în secțiunea //Căi în ierarhia de fișiere//. | + | Un exemplu de ierarhie de fișiere este în secțiunea //Căi în ierarhia de fișiere//. |
Pentru a vedea fișierele sub formă arborescentă, folosim comanda ''%%tree%%''. | Pentru a vedea fișierele sub formă arborescentă, folosim comanda ''%%tree%%''. | ||
Line 151: | Line 151: | ||
-rw-rw-r-- 1 student student 0 oct 12 01:05 romania | -rw-rw-r-- 1 student student 0 oct 12 01:05 romania | ||
</code> | </code> | ||
- | Observăm că în comanda de mai sus am încercat să creăm un fișier numit ''%%cities romania%%'', însă au fost create două fișiere. Pentru a crea un fișier cu //spații (space)// inclus în nume este nevoie să folosim ghilimelele la începutul și sfârșitul numelui astfel: ''%%touch "cities romania"%%''. | + | Observăm că în comanda de mai sus am încercat să creăm un fișier numit ''%%cities romania%%'', însă au fost create două fișiere. Pentru a crea un fișier cu //spații (space)// inclus în nume este nevoie să folosim ghilimelele la începutul și sfârșitul numelui astfel: ''%%touch "cities in romania"%%''. |
<code bash> | <code bash> | ||
Line 185: | Line 185: | ||
==== Crearea directoarelor ==== | ==== Crearea directoarelor ==== | ||
- | Este util să creăm directoarele atunci când vrem să păstrăm fișierele din sistem într-un mod organizat. De exemplu, putem crea câte un director pentru fiecare an de licență. Pentru fiecare an/director, cream câte un director pentru fiecare materie si pentru fiecare materie putem să facem directoare pentru teme, laboratoare, cursuri etc. | + | Este util să creăm directoarele atunci când vrem să păstrăm fișierele din sistem într-un mod organizat. De exemplu, putem crea câte un director pentru fiecare an de licență. Pentru fiecare an/director, creăm câte un director pentru fiecare materie și pentru fiecare materie putem să facem directoare pentru teme, laboratoare, cursuri etc. |
Creăm directoarele folosind utilitarul ''%%mkdir%%''. Etimologia comenzii provine din limba engleză - //make directory//. | Creăm directoarele folosind utilitarul ''%%mkdir%%''. Etimologia comenzii provine din limba engleză - //make directory//. | ||
- | Creăm un directoarele ''%%GameOfThrones%%'' și ''%%Avengers%%'' în directorul ''%%~/uso_lab02%%'' ca în exemplul de mai jos: | + | Creăm directoarele ''%%GameOfThrones%%'' și ''%%Avengers%%'' în directorul ''%%~/uso_lab02%%'' ca în exemplul de mai jos: |
<code bash> | <code bash> | ||
Line 235: | Line 235: | ||
<code bash> | <code bash> | ||
- | student@uso:~/uso_lab02$ echo "A girl has no name" > "GameOfThrones/Arya" | + | student@uso:~/uso_lab02$ echo "A girl has no name" > GameOfThrones/Arya |
- | student@uso:~/uso_lab02$ cat "GameOfThrones/Arya" | + | student@uso:~/uso_lab02$ cat GameOfThrones/Arya |
A girl has no name | A girl has no name | ||
</code> | </code> | ||
Line 307: | Line 307: | ||
<note important> | <note important> | ||
- | După executarea comenzii, verificăm corectitudinea operației. Trebuie să verificăm și să nu presupunem că o comandă s-a executat. Lipsa unei verifică poate duce la erori și mult timp pierdut din partea noastră. | + | După executarea comenzii verificăm corectitudinea operației. Trebuie să verificăm și să nu presupunem că o comandă s-a executat. Lipsa unei verificări poate duce la erori și mult timp pierdut din partea noastră. |
</note> | </note> | ||
Line 327: | Line 327: | ||
Un alt rol al comenzii ''%%mv%%'' este de a muta fișierele și directoarele, în ierarhia de fișiere, dintr-un loc în altul. | Un alt rol al comenzii ''%%mv%%'' este de a muta fișierele și directoarele, în ierarhia de fișiere, dintr-un loc în altul. | ||
- | Mutăm directorul ''%%GameOfThrones%%'' (cu tot conținutul acestuia) la calea ''%%/tmp/%%'' folosind comanda ''%%mv%%'': | + | Mutăm directorul ''%%ThroneOfGames%%'' (cu tot conținutul acestuia) la calea ''%%/tmp/%%'' folosind comanda ''%%mv%%'': |
<code bash> | <code bash> | ||
student@uso:~/uso_lab02$ ls | student@uso:~/uso_lab02$ ls | ||
Avengers GameOfThrones | Avengers GameOfThrones | ||
- | student@uso:~/uso_lab02$ mv GameOfThrones/ /tmp/ | + | student@uso:~/uso_lab02$ mv ThroneOfGames/ /tmp/ |
student@uso:~/uso_lab02$ ls /tmp/ | student@uso:~/uso_lab02$ ls /tmp/ | ||
- | GameOfThrones ssh-ApUMKI3HSJ | + | ThroneOfGames ssh-ApUMKI3HSJ |
- | student@uso:~/uso_lab02$ ls /tmp/ | + | |
- | GameOfThrones ssh-ApUMKI3HSJ | + | |
student@uso:~/uso_lab02$ ls | student@uso:~/uso_lab02$ ls | ||
Avengers | Avengers | ||
</code> | </code> | ||
- | Acum directorul ''%%GameOfThrones%%'' se află în calea ''%%/tmp/GameOfThrones%%''. Am verificat folosind ''%%ls%%'' că nu se mai află în directorul curent și că există în directorul ''%%/tmp/%%''. | + | Acum directorul ''%%ThroneOfGames%%'' se află în calea ''%%/tmp/ThroneOfGames%%''. Am verificat folosind ''%%ls%%'' că nu se mai află în directorul curent și că există în directorul ''%%/tmp/%%''. |
- | Mutăm înapoi directorul ''%%GameOfThrones%%'' (cu tot conținutul acestuia) folosind cale relativă, pentru a indica directorul, și cale absolută, pentru a indica locul unde vrem să ajungă directorul folosind ''%%mv%%'': | + | Mutăm înapoi directorul ''%%ThroneOfGames%%'' (cu tot conținutul acestuia) folosind cale relativă, pentru a indica directorul, și cale absolută, pentru a indica locul unde vrem să ajungă directorul folosind ''%%mv%%'': |
<code bash> | <code bash> | ||
- | student@uso:~/uso_lab02$ mv ../../../tmp/GameOfThrones/ /home/student/uso_lab02 | + | student@uso:~/uso_lab02$ mv ../../../tmp/ThroneOfGames/ /home/student/uso_lab02 |
student@uso:~/uso_lab02$ ls | student@uso:~/uso_lab02$ ls | ||
- | Avengers GameOfThrones | + | Avengers ThroneOfGames |
</code> | </code> | ||
- | Am verificat că directorul ''%%GameOfThrones%%'' se află la calea indicată (calea curentă). | + | Am verificat că directorul ''%%ThroneOfGames%%'' se află la calea indicată (calea curentă). |
<note> | <note> | ||
Line 370: | Line 368: | ||
* Verificați că directorul și ierarhia de fișiere au fost mutate. | * Verificați că directorul și ierarhia de fișiere au fost mutate. | ||
- | - | ||
- | * Redenumiți directorul ''%%GameOfThrones%%'' în ''%%ThronesInTheGame%%''. | + | * Redenumiți directorul ''%%ThroneOfGames%%'' în ''%%ThronesInTheGame%%''. |
* Mutați fișierele din interiorul directorului ''%%ThronesInTheGame%%'' în ''%%/tmp%%''. | * Mutați fișierele din interiorul directorului ''%%ThronesInTheGame%%'' în ''%%/tmp%%''. | ||
* Verificați operațiile. | * Verificați operațiile. | ||
- | * Mutați directorul înapoi la locatia inițială folosind atât căi relative cât și căi absolute. | + | * Mutați fișierele înapoi la locatia inițială folosind atât căi relative cât și căi absolute. |
==== Copierea fișierelor și directoarelor ==== | ==== Copierea fișierelor și directoarelor ==== | ||
Line 428: | Line 426: | ||
drwxr-xr-x 2 student student 4096 Sep 29 18:20 Avengers | drwxr-xr-x 2 student student 4096 Sep 29 18:20 Avengers | ||
(...) | (...) | ||
- | drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones | + | drwxr-xr-x 2 student student 4096 Sep 29 17:44 ThronesInTheGame |
(...) | (...) | ||
</code> | </code> | ||
Line 475: | Line 473: | ||
student@uso:~/uso_lab02$ mkdir .LordOfTheRings | student@uso:~/uso_lab02$ mkdir .LordOfTheRings | ||
student@uso:~/uso_lab02$ ls | student@uso:~/uso_lab02$ ls | ||
- | Avengers GameOfThrones | + | Avengers ThronesInTheGame |
student@uso:~$ ls -al | student@uso:~$ ls -al | ||
total 20 | total 20 | ||
Line 483: | Line 481: | ||
drwxr-xr-x 2 student student 4096 Sep 29 18:20 Avengers | drwxr-xr-x 2 student student 4096 Sep 29 18:20 Avengers | ||
(...) | (...) | ||
- | drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones | + | drwxr-xr-x 2 student student 4096 Sep 29 17:44 ThronesInTheGame |
(...) | (...) | ||
</code> | </code> | ||
Line 526: | Line 524: | ||
</code> | </code> | ||
- | Observăm că fișierul ''%%examples.desktop%%'' este un fișier de tipul //UTF-8// în ciuda extensiei, ''%%/usr/bin/touch%%'' este o //legătură simbolică//, iar ''%%/usr/bin/touch%%'' este un fișier //binar//. | + | Observăm că fișierul ''%%examples.desktop%%'' este un fișier de tipul //UTF-8// în ciuda extensiei, ''%%/usr/bin/touch%%'' este o //legătură simbolică//, iar ''%%/bin/touch%%'' este un fișier //binar//. |
Vom prezenta mai multe detalii în capitolul //Îmbunătățirea lucrului în linia de comandă//. | Vom prezenta mai multe detalii în capitolul //Îmbunătățirea lucrului în linia de comandă//. | ||
Line 624: | Line 622: | ||
-rw-r--r-- 1 student student 0 Sep 29 19:04 test | -rw-r--r-- 1 student student 0 Sep 29 19:04 test | ||
(...) | (...) | ||
- | student@uso:/tmp$ ln -s /home/student/uso_lab02/test | + | student@uso:/tmp$ ln -s /home/student/uso_lab02/test my_link |
student@uso:/tmp$ ls -l | student@uso:/tmp$ ls -l | ||
(...) | (...) | ||
Line 631: | Line 629: | ||
student@uso:/tmp$ rm my_link | student@uso:/tmp$ rm my_link | ||
student@uso:/tmp$ ls | student@uso:/tmp$ ls | ||
- | student@uso:/tmp$ ls -l /home/student/uso_lab02 | + | student@uso:/tmp$ ls -l /home/student/uso_lab02/test |
(...) | (...) | ||
drwxr-xr-x 2 student student 4096 Sep 29 18:20 Avengers | drwxr-xr-x 2 student student 4096 Sep 29 18:20 Avengers | ||
Line 637: | Line 635: | ||
(...) | (...) | ||
</code> | </code> | ||
- | Observăm că dacă am șters un fișier accesându-l prin legătura, s-a șters și la destinație. | + | Observăm că dacă am șters un fișier accesându-l prin legătura (''my_link''), nu s-a șters și la destinație (''/home/student/uso_lab02/test''). |
==== Exerciții - legături (linkuri) ==== | ==== Exerciții - legături (linkuri) ==== | ||
Line 680: | Line 678: | ||
(...) | (...) | ||
</code> | </code> | ||
- | Observăm cum se rulează un executabil atât cu cale relativă (în primul caz) cât și cu cale absolută (în al doilea caz). | + | Observăm cum se rulează un executabil atât cu cale relativă (în primul caz), cât și cu cale absolută (în al doilea caz). |