ln (Unix) - ln (Unix)
| Autori originali | Laboratoarele AT&T Bell |
|---|---|
| Dezvoltatori | Diverse open-source si comerciale dezvoltatori |
| Eliberarea inițială | 3 noiembrie 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,
- 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.
-
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
readlinkutilitarului 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”
lnutilitarul creează o nouă legătură dură (intrare director) pentru fișierul sursă specificat desource_fileoperand la calea de destinație specificată detarget_fileoperand. Cu toate acestea, dacă-sopțiunea este specificată, se creează o legătură simbolică. ln [-fs] [-L|-P] source_file target_file
- În invocarea „fișier multiplu”
lnutilitarul creează o nouă legătură dură ( intrare în director ) sau, dacă-sopțiunea este specificată, o legătură simbolică, pentru fiecare fișier specificat desource_fileoperand, la o cale de destinație într-un director existent numit de operandtarget_dir. ln [-fs] [-L|-P] source_file_1 source_file_2 ... target_dir
- În invocarea „fișier unic”
Specificația specifică, de asemenea, opțiunile din linia de comandă care trebuie acceptate:
-
-fForțați numele de cale de destinație existente să fie eliminate pentru a permite linkul. -
-LPentru fiecaresource_fileoperand 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ă. -
-PPentru fiecaresource_fileoperand 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. -
-sCreaț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-Pultima opțiune specificată determină comportamentul utilitarului. - Dacă
-sopțiunea nu este specificată și nu este specificată nici o,-Lnici o-Popțiune, implementarea definește care dintre opțiunile-Lși-Popț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 .