GNU/Linux >> Linux Esercitazione >  >> Linux

Che cosa sono i collegamenti simbolici in Linux? Come creare collegamenti simbolici?

Un collegamento simbolico, noto anche come collegamento simbolico o collegamento software , è un tipo speciale di file che punta semplicemente a un altro file o directory, proprio come le scorciatoie in Windows. Creare un collegamento simbolico è come creare un alias in un file reale.

Se si tenta di accedere al collegamento simbolico, si accede effettivamente al file di destinazione a cui punta il collegamento simbolico. Le modifiche apportate al contenuto del file di collegamento modificano il contenuto del file di destinazione effettivo.

Se usi il comando ls con l'opzione -l, ecco come appare un collegamento simbolico:

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Nella maggior parte delle distribuzioni Linux, i collegamenti vengono visualizzati in un colore diverso rispetto al resto delle voci in modo da poter distinguere i collegamenti dai normali file e directory.

I collegamenti simbolici offrono un modo conveniente per organizzare e condividere file. Forniscono un rapido accesso a percorsi di directory lunghi e confusi. Sono molto utilizzati per collegare le librerie in Linux.

Ora che conosci un po' i link simbolici, vediamo come crearli.

Per creare un collegamento simbolico al file di destinazione dal nome del collegamento , puoi usare il comando ln con l'opzione -s in questo modo:

ln -s target_file link_name

L'opzione -s è importante qui. Determina che il collegamento è soft link. Se non lo usi, creerà un collegamento fisico. Spiegherò la differenza tra soft link e hard link in un altro articolo.

I collegamenti simbolici a volte possono confondere, quindi dovresti prendere nota di alcune cose.

Questo è l'intero scopo dei collegamenti, dopotutto. Si accede al file di destinazione accedendo al collegamento. È possibile apportare modifiche al file di destinazione tramite i collegamenti. Vediamo con esempio.

Ho un file prog.py in newdir/test_dir. Ha i seguenti attributi:

-rw-r--r-- 1 abhishek abhishek 163 Apr 13 15:07 newdir/test_dir/prog.py

Ora creerò un collegamento software a questo file nella mia directory attuale:

ln -s newdir/test_dir/prog.py link_prog

Ecco gli attributi del link appena creato:

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Nota la l (è L, non uno) all'inizio della riga? Se hai familiarità con i permessi dei file in Linux, sapresti che la "l" significa collegamento e quindi ti dice che questo file è in realtà un collegamento. Per rinfrescare la memoria, – significa file e d significa directory.

Ora, se uso questo collegamento per modificare il contenuto o gli attributi, lo stesso si rifletterà nel file di destinazione. Ad esempio, sto usando il comando touch sul collegamento software e noterai che cambia il timestamp del file di destinazione.

touch link_prog 

ls -l newdir/test_dir/prog.py 

-rw-r--r-- 1 abhishek abhishek 163 Jul  2 10:04 newdir/test_dir/prog.py

Come faresti a sapere se il collegamento punta a un file o a una directory? Non puoi saperlo finché non segui il percorso e accedi al file di destinazione stesso.

Sì, è del tutto possibile. Questo è il motivo per cui dovresti stare attento durante la creazione di collegamenti software in Linux. Il file di destinazione a cui stai collegando non deve esistere. Non riceverai alcun errore o avviso per la creazione di un collegamento a un file/directory che non esiste.

Riceverai un errore solo quando proverai ad accedere al file di destinazione, tramite il collegamento o da solo. Il comando ls funzionerà comunque.

ln -s non_existant_dir link_dir
less link_dir
link_dir: No such file or directory

Hai notato il permesso del file sul collegamento simbolico? I collegamenti simbolici vengono sempre creati con l'autorizzazione 777 (rwxrwxrwx). Per un file normale, ciò significherebbe che chiunque può accedere al file. Ma non è il caso dei link.

lrwxrwxrwx 1 abhishek abhishek 23 Jul  2 08:51 link_prog -> newdir/test_dir/prog.py

Se le autorizzazioni dei file sui collegamenti fossero trattate così come sono, qualsiasi utente potrebbe creare un collegamento simbolico a un file protetto e accedervi liberamente. Sarebbe un grosso problema di sicurezza. Per fortuna, ciò non accade. Perché l'autorizzazione sui file di destinazione è importante, non l'autorizzazione sui collegamenti.

Puoi utilizzare il comando chmod per modificare l'autorizzazione sul collegamento, ma cambierà l'autorizzazione del file collegato, non il collegamento stesso.

È possibile creare un collegamento simbolico che punti a un altro collegamento e così via. Questo è chiamato collegamento simbolico concatenato. È meglio evitarli perché creano più confusione.

Bene, questo è tutto. Presumo che tu abbia una migliore conoscenza dei collegamenti software ora e tu sappia come creare collegamenti simbolici in Linux. Potresti leggere del comando symlinks che può aiutarti a trovare collegamenti simbolici interrotti in Linux e gestirli facilmente.

Se hai domande o suggerimenti, lascia un commento qui sotto.


Linux
  1. Come creare collegamenti rigidi e simbolici in Linux

  2. Come creare un file ZIP protetto da password in Linux

  3. Come creare uno scambio in Linux

  4. Come creare un file di scambio in Linux

  5. Cosa sono i collegamenti simbolici (Soft Link) e come crearli sotto Linux

Guida all'aggiunta di collegamenti simbolici Linux

Linux ln – Come creare un collegamento simbolico in Linux [Esempio di comando Bash]

Come rimuovere i collegamenti simbolici su Linux

Come creare collegamenti simbolici su Linux

Il comando ln in Linux:crea collegamenti soft e hard

Come ottenere un elenco di collegamenti simbolici su Linux