Skip to content

Built a tree file system in C inspired by the Unix File System, which can be manipulated through multiple Bash-style commands: mkdir, ls, pwd, mv, cp, rmrec etc.

Notifications You must be signed in to change notification settings

Alexg074/Linux-File-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

// Copyright 2021-2022 Cristian-Vlad Albu & Mihai-Alexandru Georgescu, 312CA

Linux File System - Team Project

========================= Description ===================================

-> Programul implementeaza unui sistem de fisiere arborescent, ce poate fi manipulat prin intermediul a numeroase comenzi in stil bash: ls, pwd, mv, cp etc.

=========================================================================== functia main:

-> Primeste anumite comenzi pe baza carora apeleaza functiile implementate de noi in vederea manipularii sistemului de fisiere.

================================ touch =================================

-> Comanda: touch [filecontent]

-> Folosind aceasta comanda, utilizatorul poate crea un nou fisier in nodul (directorul) curent in care se afla;

-> Daca numele fisierului exista deja in directorul parinte, functia nu va avea niciun efect;

-> La final, functia va adauga noul fisier intr-un nou nod din lista directorului parinte.

================================= ls ===================================

-> Comanda: ls [arg]

-> Folosind aceasta comanda fara un argument, utilizatorul poate afisa toate resursele directorului curent;

-> Daca argumentul este un director, se afiseaza toate resursele continute de acesta;

-> In cazul unui argument de tip fisier, functia afiseaza continutul text al acestuia (in stilul comenzii "cat" Linux).

================================ mkdir ================================

-> Comanda: mkdir

-> Folosind aceasta comanda, utilizatorul poate crea un nou director in nodul (directorul) curent in care se afla;

-> Numele acestuia nu trebuie sa mai existe in directorul parinte;

-> La final, functia va adauga noul director intr-un nou nod din lista directorului parinte.

================================= cd ==================================

-> Comanda: cd

-> Folosind aceasta comanda, utilizatorul se poate muta in directorul catre care conduce calea path (absoluta sau relativa);

-> Ne folosim de un token si de delimitatorul "/" pentru a ne muta in directorul respectiv din path.

================================ tree =================================

-> Comanda: tree [path]

-> Folosind aceasta comanda, utilizatorul are posibilitatea sa afiseze ierarhia de fisiere si directoare pornind de la path-ul dat;

-> In cazul in care argumentul path lipseste, functia afiseaza ierarhia pornind de la nodul curent;

-> Pentru a realiza afisarii, ne folosim de functia print_tree, careia i-am atribuit parametrii: node - nodul pe care vrem sa il afisam (recursiv daca e director nenul) tabs - numarul de tab uri pentru afisare (adica adancimea in ierarhie) files, folders - adresele care retin numarul de fisiere, respectiv directoare de pe tot parcursul functiei tree.

================================ pwd ==================================

-> Comanda: pwd

-> Folosind aceasta comanda, utilizatorul afiseaza calea absoluta a directorului in care se afla.

================================ rmdir ================================

-> Comanda: rmdir

-> Folosind aceasta comanda, utilizatorul poate elimina un director gol continut de directorul curent, restabilind legaturile dintre celelalte resurse din lista parintelui.

================================ rm =================================

-> Comanda: rm

-> Folosind aceasta comanda, utilizatorul poate elimina un fisier aflat in directorul curent, restabilind legaturile dintre celelalte resurse din lista parintelui.

================================ rmrec ================================

-> Comanda: rmrec

-> Folosind aceasta comanda, utilizatorul poate sterge un fisier sau director din directorul in care se afla;

-> Daca resursa primita ca parametru este un director care nu este gol, functia o va sterge recursiv, alaturi de tot ce contine in el.

================================ cp =================================

-> Comanda: cp <source_path> <destination_path>

-> Folosind aceasta comanda, utilizatorul poate copia la destination_path fisierul regasit la source_path;

-> In cazul in care fisierul de la destination_path nu exista sau deja exista, continutul sau va deveni cel al fisierului regasit la source_path.

================================ mv =================================

-> Comanda: mv <source_path> <destination_path>

-> Folosind aceasta comanda, utilizatorul poate muta o resursa (fisier sau director) din source_path in destination_path; -> Analog comenzii cp, continutul de la source_path este copiat la destination_path, diferenta fiind ca in cazul comenzii mv se sterge mai apoi continutul de la source_path.

About

Built a tree file system in C inspired by the Unix File System, which can be manipulated through multiple Bash-style commands: mkdir, ls, pwd, mv, cp, rmrec etc.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published