Lucrăm la linux, 101 lucrează cu legături grele și simbolice

Utilizați mai multe nume pentru un fișier

Ian Shields. Senior Programmer, IBM

Despre această serie

Această serie de articole vă va ajuta să stăpâniți sarcinile de administrare a sistemului de operare Linux. De asemenea, puteți utiliza materialele din aceste articole pentru a vă pregăti pentru examenele de certificare de nivel 1 de la Institutul Profesional de Linux (LPIC-1).







sinopsis

Din acest articol, veți învăța cum să creați legături grele și simbolice în Linux și să lucrați cu ele. Veți învăța:

Cerințe preliminare

Pentru a profita la maxim de articolele noastre, trebuie să aveți cunoștințe de bază despre Linux și să aveți un calculator de lucru cu Linux, unde puteți rula toate comenzile pe care le întâlniți. Uneori diferite versiuni de programe afișează rezultatele în moduri diferite, astfel încât conținutul listărilor și desenelor să difere de ceea ce vedeți pe calculatorul dvs. În special, rezultatele difuzării multor exemple ale acestui articol depind în mare măsură de pachetele deja instalate în sistemul de operare. Deși rezultatele obținute în sistemul dvs. de operare pot fi diferite, ar trebui să prindeți cele mai importante puncte comune.

Cum se ajunge la Яном

Fișierele și directoarele sunt localizate pe dispozitivul de stocare ca un set de blocuri. Informațiile despre fișier (cum ar fi proprietarul fișierului, ora ultimului acces la fișier, dimensiunea fișierului, dreptul de a citi sau scrie, dacă articolul este un fișier sau un director) este stocat în inode inode. Numărul de inode, cunoscut și sub denumirea de număr de ordine al fișierului. este unic într-un sistem de fișiere separat. Intrarea în director conține numele fișierului (sau directoarelor), precum și un indicator pentru descriptorul inode, în care sunt stocate informații despre acest fișier (sau director).

Crearea de linkuri

Mai întâi vă voi explica cum să creați legături grele și moi, iar apoi vă voi învăța să le găsiți și să le folosiți.

Legături greu accesibile

Pentru a crea linkuri suplimentare greu la un fișier existent (dar nu la un director, chiar dacă înregistrările .. și .. există în sistem ca legături greu), utilizați comanda ln.

Listarea 1. Crearea de legături dure

Dacă încercați să creați un link greu care să indice un obiect în afara sistemului de fișiere sau o legătură greu pentru director, veți primi o eroare. Lista 2 arată că directorul meu de acasă și directorul de cercetare sunt situate în sisteme de fișiere diferite, încercând astfel să creeze linkuri grele pentru acestea, se termină cu eșec, precum și o încercare de a crea un link greu pentru directorul lpi104-6.

Listarea 2. Erori la crearea legăturilor grele

Link-uri simbolice

Pentru a crea link-uri simbolice, folosiți comanda ln cu opțiunea -s. La crearea legăturilor simbolice, se folosesc numele fișierelor sau directoarelor care pot fi fie absolute fie relative. Dacă folosiți nume relative, se presupune că legăturile vor fi localizate în directorul curent de lucru; în caz contrar, link-urile pe care le creați vor fi relativ la un alt punct din sistemul de fișiere. Listarea 3 arată două moduri de a crea legături simbolice la fișierul file1, precum și cum să creați două linkuri simbolice în locul a două linkuri dure (pe care nu am putut crea în listare 2).

Listarea 3. Crearea de legături simbolice

Încă puteți utiliza orice nume de linkuri sau fișiere și directoare de destinație pentru a accesa fișierul sau directorul. Lista 4 prezintă câteva exemple.

Listarea 4. Utilizarea legăturilor simbolice

Acum creați o legătură simbolică, utilizând căi relative, când directorul nostru de lucru nu este directorul în care vrem să creăm legătura. În secțiunea următoare, vom vedea ce va duce la aceasta.

Listing 5. Crearea unui link simbolic nevalid






Definiția links

În secțiunea anterioară, am arătat cum să creați linkuri, iar acum le voi explica cum să le distingem.

Căutarea informațiilor

Astăzi, în multe sisteme de operare, alias ls --color = auto există pentru comanda ls. care afișează diferite tipuri de obiecte de sistem de fișiere în culori diferite. Culorile fiecărui obiect pot fi ajustate. Cu această opțiune, legăturile greu pot fi afișate în alb pe un fundal albastru închis și legături simbolice - albastru pe un fundal alb, după cum se arată în Figura 1.

Figura 1. Utilizarea opțiunii - culori pentru a defini referințele

Deși oamenii cu o vedere bună pot folosi și discerne culorile, cineva nu va face acest lucru; Este inutil să folosiți culori în scripturi sau programe de comandă. Dacă nu țineți cont de versiunea color, atunci veți avea nevoie de informații mai detaliate, de exemplu, informațiile afișate de comanda ls -l. În listare 6, interzicem în mod explicit afișarea informațiilor în culori, dar puteți apela în mod explicit comanda / bin / ls.

Listarea 6. Definirea legăturilor

A doua coloană de ieșire din listare 6 conține un număr de referință. care arată numărul de linkuri dure către fișier. Astfel, vom vedea că fișierele file1, file3 și file3sub au mai multe linkuri grele care indică obiectele pe care le reprezintă; cu toate acestea, aceste informații nu sunt suficiente pentru a înțelege că toate reprezintă același obiect. Dacă ștergeți un fișier a cărui număr de referință este mai mare de 1, numărul de referință din descriptorul inode va scădea cu 1, dar fișierul nu va fi șters până când numărătoarea nu va atinge valoarea 0. Valorile contorului tuturor celorlalte linkuri grele la acest fișier vor scădea cu 1.

Pentru a imprima inodurile fișierelor și directoarelor inode, utilizați comanda ls cu opțiunea -i. Lista 7 arată atât o scurtă și detaliată ieșire a conținutului directorului lpi104-6.

Listing 7. Ieșire de ieșire

Pentru a găsi legături simbolice, puteți folosi și comanda Find cu expresia -type l. după cum se arată în Lista 8.

Afișarea 8. Folosind comanda pentru a găsi link-uri simbolice

Link-uri simbolice rupte

În listare 5, am creat o legătură simbolică în mod deliberat nevalidă. Acesta este doar un exemplu de legătură simbolică "lilieci". Deoarece legăturile grele indică întotdeauna un descriptor inode care este un fișier, acestea sunt întotdeauna valide. Cu toate acestea, legăturile simbolice se pot dovedi incorecte din mai multe motive, de exemplu:

  • La momentul creării linkului, fișierul sursă sau țintă a acestei legături nu există (situația din listare 5).
  • Obiectul țintă al linkului a fost șters sau redenumit.
  • Unele elemente ale căii spre destinație au fost șterse sau redenumite.

Nici unul dintre acestea nu produce un mesaj de eroare, deci atunci când creați legături simbolice, trebuie să analizați cu atenție ce se poate întâmpla cu ei. În special, alegerea căilor absolute sau relative ar trebui să se bazeze pe ceea ce se poate întâmpla cu obiectul pe care îl referiți pe durata de viață a link-ului.

Dacă utilizați ieșirea de culoare a conținutului directorului, legăturile simbolice "rupte" sunt de obicei afișate în roșu pe un fundal negru, ca în cazul fișierului file6 (Figura 1). În caz contrar, trebuie să utilizați opțiunea -H sau -L a comenzii ls pentru a expune informațiile de referință și țintă. Opțiunea -H dezvăluie informații despre referința specificată pe linia de comandă, iar opțiunea -L efectuează aceleași acțiuni pentru toate legăturile care fac parte din ieșire. Lista 9 prezintă diferențele atunci când utilizați aceste două opțiuni.

Rețineți mesajul de eroare care indică faptul că fișierul6 nu există, precum și linia de ieșire cu caracterele "?", Ceea ce înseamnă că acest fișier nu a fost găsit.

Și ultima remarcă despre legăturile simbolice "rupte". Toate încercările de citire din fișier nu reușesc, deoarece nu există. Cu toate acestea, încercările de a scrie în acest fișier (cu permisiunile necesare) vor avea succes, după cum se arată în Lista 10. Rețineți că înainte de a putea scrie date într-un fișier, trebuie să creați un director lpi104-6 / lpi104-6.

Listarea 10. Citirea și scrierea unei legături simbolice întrerupte

Găsiți toate referințele la un obiect

Afișarea 11. Găsirea tuturor legăturilor grele la un fișier
Listarea 12. Căutați toate link-urile simbolice într-un fișier sau director

După cum ați văzut deja, atunci când actualizați un fișier, toate referințele la acesta sunt actualizate, ceea ce nu se întâmplă dacă este copiat. De asemenea, rețineți că legăturile simbolice pot fi "rupte", dar ca rezultat al scrierilor ulterioare, poate fi creat un nou fișier. Aveți grijă atunci când utilizați link-uri.

Legături și administrare

Listarea 13. Utilizarea aliaselor pentru diferite versiuni de comenzi

În alte cazuri, referințele pot fi utilizate atunci când mai multe comenzi cu nume diferite utilizează același cod care le stă la baza; de exemplu, pot fi diferite comenzi pentru a opri și a reporni sistemul. Uneori, un nou nume de comandă, de exemplu genisofs, înlocuiește numele vechi al aceleiași comenzi (mkisofs), care continuă să fie folosit ca referință la noua comandă. Linkurile sunt utilizate în mod activ de sistemul de alternative, permițându-vă să alegeți una dintre mai multe comenzi alternative, cum ar fi java, pentru utilizare. Câteva exemple sunt prezentate în Lista 14.

Listarea 14. Exemple de folosire a aliaselor de comandă
Listarea 15. Referințe bibliotecă

Pentru mai multe informații despre utilizarea legăturilor, consultați paginile manuale ale comenzii ln și alte comenzi din acest ghid.







Articole similare

Trimiteți-le prietenilor: