ln (Unix) - ln (Unix)

ln
Diferențe între legături durabile și legături simbolice în mediu GNU Linux.jpg
Autori originali Laboratoarele AT&T Bell
Dezvoltatori Diverse open-source si comerciale dezvoltatori
Eliberarea inițială 3 noiembrie 1971 ; Acum 49 de ani  ( 03.11.1971 )
Sistem de operare Unix , asemănător Unix , IBM i
Platformă Cross-platform
Tip Comanda
Licență coreutils : GPLv3 +

ln Comanda este un standard de comandă Unix utilitar folosit pentru a crea un link tare sau un link simbolic (symlink) la un fișier sau director existent. Utilizarea unei legături hard permite ca mai multe nume de fișiere să fie asociate cu același fișier, întrucât o legătură dură indică inodul unui fișier dat, ale cărui date sunt stocate pe disc . Pe de altă parte, legăturile simbolice sunt fișiere speciale care se referă la alte fișiere după nume .

ln Comanda implicit creează legături dure, iar când numit cu linia de comandă parametrul ln -s creează link - uri simbolice. Majoritatea sistemelor de operare împiedică crearea de legături dure către directoare, deoarece o astfel de capacitate ar putea perturba structura unui sistem de fișiere și ar putea interfera cu funcționarea altor utilități. Cu ln toate acestea, comanda poate fi utilizată pentru a crea legături simbolice către fișiere inexistente.

Istorie

Am apărut în numărul 2 din Ghidul de portabilitate X / Open . Versiunea ln pachetului în coreutils GNU a fost scrisă de Mike Parker și David MacKenzie. Comanda ln a fost, de asemenea, portată pe sistemul de operare IBM i .

Link-uri

Linkurile permit mai multor nume de fișiere să se refere la același fișier ca în cazul unei legături hard sau să acționeze ca indicatori către un nume de fișier ca în cazul unei legături soft . Atât linkurile hard cât și linkurile soft pot fi create de ln comandă. Specific,

  1. Legăturile dure , cunoscute și sub numele de legături, sunt obiecte care asociază numele fișierului cu inodul și, prin urmare, conținutul fișierului în sine. Un fișier dat de pe disc ar putea avea mai multe legături împrăștiate prin ierarhia directorului , toate legăturile fiind echivalente, deoarece toate se asociază cu același inod . Prin urmare, crearea unui link nu copieză conținutul fișierului, ci doar face ca un alt nume să fie asociat cu același conținut. De fiecare dată când este creată o legătură dură, un contor de legături care face parte din structura inodului se crește; un fișier nu este șters până când numărul său de referințe ajunge la zero. Cu toate acestea, legăturile dure pot fi create numai pe același sistem de fișiere ; acest lucru se poate dovedi a fi un dezavantaj.
  2. Legăturile simbolice sunt fișiere speciale care, atunci când sunt întâlnite în timpul rezoluției căii, modifică rezoluția căii, pentru a fi dusă la locația pe care o conține legătura simbolică. Conținutul legăturii simbolice este deci șirul de cale de destinație , care poate fi examinat și cu ajutorul readlink utilitarului de linie de comandă. Legătura simbolică poate conține un șir arbitrar care nu se referă la locația unui fișier existent. O astfel de legătură simbolică va eșua până când un fișier este creat în locația conținută de legătura simbolică. În schimb, o legătură simbolică către un fișier existent va eșua dacă fișierul existent este mutat într-o altă locație (sau redenumit).

Specificație

ln Utilitatea pe sisteme compatibile cu Single Unix Specification este specificată în Shell și Utilități documentul (XCU), care formează o parte a Single Unix Specification. Un document în mare parte identic face parte din POSIX .

Specificația descrie două moduri de invocare a ln utilității. Specific,

În invocarea „fișier unic” ln utilitarul creează o nouă legătură dură (intrare director) pentru fișierul sursă specificat de source_file operand la calea de destinație specificată de target_file operand. Cu toate acestea, dacă -s opțiunea este specificată, se creează o legătură simbolică.
ln [-fs] [-L|-P] source_file target_file
În invocarea „fișier multiplu” ln utilitarul creează o nouă legătură dură ( intrare în director ) sau, dacă -s opțiunea este specificată, o legătură simbolică, pentru fiecare fișier specificat de source_file operand, la o cale de destinație într-un director existent numit de operand target_dir .
ln [-fs] [-L|-P] source_file_1 source_file_2 ... target_dir

Specificația specifică, de asemenea, opțiunile din linia de comandă care trebuie acceptate:

-f Forțați numele de cale de destinație existente să fie eliminate pentru a permite linkul.
-L Pentru fiecare source_file operand care numește un fișier care este o legătură simbolică, creați o legătură dură către fișierul la care se face referire prin legătura simbolică.
-P Pentru fiecare source_file operand care numește un fișier care este o legătură simbolică, creați o legătură (dură) către legătura simbolică însăși.
-s Creați legături simbolice în loc de legături dure. Dacă este specificată opțiunea -s, opțiunile -L și -P sunt ignorate silențios.
Dacă se specifică mai multe opțiuni care se exclud reciproc -L și -P ultima opțiune specificată determină comportamentul utilitarului.
Dacă -s opțiunea nu este specificată și nu este specificată nici o, -L nici o -P opțiune, implementarea definește care dintre opțiunile -L și -P opțiunile vor fi utilizate ca implicite.

Dacă nu sunt specificate nici fișierul țintă, nici directorul țintă, vor fi create linkuri în directorul de lucru curent .

Vezi si

Referințe

linkuri externe