Bună ziua din nou acolo. În această introducere în legătură cu legăturile dure și legăturile simbolice, vom încerca mai întâi să învățăm și să definim ce înseamnă fiecare dintre ele. Apoi vom discuta care sunt diferențele dintre cele două.
Ce este un hard link și ce anume face acesta în shell?
Un hard link este pur și simplu un nume suplimentar pentru un fișier existent pe Linux sau pe alte sisteme de operare de tip Unix.
Se poate crea orice număr de hard link-uri și, prin urmare, orice număr de nume, pentru orice fișier. De asemenea, pot fi create legături dure către alte legături dure. Cu toate acestea, ele nu pot fi create pentru directoare și nu pot traversa granițele sistemului de fișiere sau se pot întinde peste partiții.
Poate cea mai utilă aplicație a legăturilor dure este aceea de a permite ca fișierele, programele și scripturile (adică programele scurte) să fie accesate cu ușurință într-un alt director decât fișierul original sau fișierul executabil (adică versiunea gata de execuție a unui program). Tastarea numelui legăturii dure va face ca programul sau scriptul să fie executat în același mod ca și în cazul utilizării numelui său original. (http://www.linfo.org/hard_link.html)
Vreți să citiți această poveste mai târziu? Salvați-o în Jurnal.
Atunci ce înseamnă cu adevărat această definiție? Ei bine, puteți crea o legătură directă cu un fișier existent folosind comanda ln nume_fișier hardlink. Am oferit mai jos un exemplu de creare a unui hard link în acțiune. În exemplul de mai jos am creat un hardlink aka o scurtătură către fișierul numit file1 cu hardlink-ul numit hlink1.
Acum să ls -i
. Pentru ca acesta să listeze toate fișierele cu inode.
INODE Definiție: Inode-ul este o structură de date într-un sistem de fișiere de tip Unix care descrie un obiect al sistemului de fișiere, cum ar fi un fișier sau un director. Fiecare inode stochează atributele și locația (locațiile) blocurilor de disc ale datelor obiectului. Atributele obiectelor din sistemul de fișiere pot include metadate (orele ultimei modificări, ale ultimei modificări, ale ultimului acces, ale ultimei modificări), precum și date privind proprietarul și permisiunile.
Directoarele sunt liste de nume atribuite inode-urilor. Un director conține o intrare pentru el însuși, pentru părintele său și pentru fiecare dintre copiii săi. (https://en.wikipedia.org/wiki/Inode)
Dacă vă uitați la file1 și la hlink1 puteți vedea că inodul din partea stângă este același. În esență, hardlink acționează ca o scurtătură către acel fișier care este hardlink.
Acum trecem la „Soft Links”
Soft links este un tip special de fișier care punctează către un alt fișier, la fel ca o scurtătură. Spre deosebire de o legătură hard, o legătură simbolică nu conține datele din fișierul țintă. Ea indică pur și simplu o altă intrare undeva în sistemul de fișiere. Această diferență conferă legăturilor simbolice anumite calități pe care legăturile permanente nu le au, cum ar fi capacitatea de a crea legături către directoare sau către fișiere de pe calculatoare aflate la distanță în rețea prin NFS. De asemenea, atunci când ștergeți un fișier țintă, legăturile simbolice către acel fișier devin inutilizabile, în timp ce legăturile dure păstrează conținutul fișierului. (https://kb.iu.edu/d/abbe)
Acum haideți să creăm o legătură soft pentru a o compara cu legătura hard pe care am creat-o mai sus.
Așa că haideți să deschidem un terminal. Mergeți la finder sau căutați și introduceți terminal ar trebui să apară faceți clic pe el și deschideți-l.
Pentru exemplul nostru să creăm mai întâi un fișier. Dacă scriem touch example1
și apăsăm enter. Putem crea un fișier. Acum să creăm legătura soft link.
Dacă scriem în shell ln -s example1 softlink1
vom crea o legătură soft link între fișiere. Vedeți exemplul de mai jos.
Acum, dacă am tasta ls -i
vom observa, de asemenea, că doar fișierul hardlink are același inod ca și hardlink, în timp ce fișierul soft link are inoduri diferite.