LINUX – ln : Creare collegamenti

()

ln — Creare collegamenti

Il comando ln è usato per creare collegamenti sia hard che simbolici. È usato in due modi. Di seguito viene creato un collegamento reale:

ln collegamento al file

Di seguito viene creato un collegamento simbolico:

ln -s item link

dove item è un file o una directory.

Crea un collegamento simbolico chiamato softlink.txt al file file.txt:

ln -s file.txt softlink.txt

La sintassi generale di ln è la seguente:

ln [opzioni] [–] sorgente1 [sorgente2 …] destinazione

I parametri sorgente indicano i nomi dei file e/o delle directory verso cui creare il collegamento. Se viene specificato un solo parametro sorgente, il parametro destinazione indica il nome del collegamento.

Se vengono specificati più parametri sorgente, il parametro destinazione deve necessariamente essere una directory esistente, o al più un collegamento simbolico ad una directory.

Il doppio trattino — (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.

Collegamenti fisici a directory

Alcuni sistemi, tra cui GNU/Linux, vietano espressamente la creazione di collegamenti fisici a directory per motivi di sicurezza: potendoli creare è infatti possibile ottenere gerarchie nel file system che si autoincludono, e che possono quindi portare i programmi che esaminano il file system ricorsivamente (come ad esempio quelli che effettuano il backup) a discendere all’infinito nella gerarchia, di fatto impedendone l’utilizzo.

Altri sistemi permettono questa operazione solo al superuser (root)

Crea un collegamento fisico chiamato hardlink.txt al file file.txt:

ln file.txt hardlink.txt

I collegamenti reali sono il modo originale Unix di creare collegamenti, rispetto ai collegamenti simbolici, che sono più moderni.

Per impostazione predefinita, ogni file ha un singolo collegamento reale che dà il nome al file.

Quando creiamo un collegamento reale, creiamo una voce di directory aggiuntiva per un file. I collegamenti fisici hanno due importanti limitazioni.

  • Un collegamento reale non può fare riferimento a un file esterno al proprio file system.

Questo indica che un collegamento non può fare riferimento a un file che non si trova sulla stessa partizione del disco del collegamento stesso.

  • Un collegamento reale potrebbe non fare riferimento a una directory.

Un collegamento reale non è distinguibile dal file stesso. A differenza di un collegamento simbolico, quando si elenca una directory contenente un collegamento reale, non verrà visualizzata alcuna indicazione speciale del collegamento. Quando viene eliminato un collegamento reale, il collegamento viene rimosso, ma il contenuto del file stesso continua a esistere (ovvero, il suo spazio non viene deallocato) fino a quando non vengono eliminati tutti i collegamenti al file. È importante essere consapevoli dei collegamenti concreti perché potresti incontrarli di volta in volta, ma la pratica moderna preferisce i collegamenti simbolici, che tratteremo in seguito.

/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?