Un collegamento simbolico (simbolico) è un tipo di file che punta ad altri file o directory (cartelle) in Linux.
Puoi creare un collegamento simbolico (simbolico) usando il ln
comando nella riga di comando.
I collegamenti simbolici sono utili perché fungono da collegamenti a un file o una directory.
In questo articolo, analizzerò come utilizzare ln
comando per creare un collegamento simbolico a un file o una directory.
Qual è la differenza tra soft e hard link in Linux?
Un collegamento software o un collegamento simbolico punterà al file originale sul sistema. Un collegamento reale creerà una copia del file.
I collegamenti soft possono puntare ad altri file o directory su un file system diverso, mentre i collegamenti reali non possono.
Come creare un collegamento simbolico a un file
Puoi trovare la riga di comando utilizzando l'applicazione Terminale su Mac o utilizzando il prompt dei comandi su Windows.
Ecco la sintassi di base per creare un collegamento simbolico a un file nel tuo terminale.
ln -s existing_source_file optional_symbolic_link
Usi il ln
comando per creare i collegamenti per i file e il -s
opzione per specificare che questo sarà un collegamento simbolico. Se ometti -s
opzione, verrà invece creato un collegamento reale.
Il file_origine_esistente rappresenta il file sul tuo computer per il quale desideri creare il collegamento simbolico.
Il parametro optional_symbolic_link è il nome del collegamento simbolico che si desidera creare. Se omesso, il sistema creerà un nuovo collegamento per te nella directory corrente in cui ti trovi.
Diamo un'occhiata a un esempio per capire meglio come funziona.
Sul mio desktop ho un file chiamato example_fcc_file.txt
.
Dovrò prima aprire il mio terminale e quindi assicurarmi di essere nella directory Desktop. Posso eseguire il comando cd Desktop
per accedere al mio desktop.
Dopo aver eseguito quel comando, dovresti vedere che ora sei nel desktop.
jessicawilkins@Dedrias-MacBook-Pro-2 ~ % cd Desktop
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop %
Posso quindi usare il ln
comando per creare un nuovo collegamento simbolico chiamato fcc_link.txt
.
ln -s example_fcc_file.txt fcc_link.txt
Quando esegui quel comando nel terminale, noterai che non è stato restituito nulla. Questo perché quando il ln
comando ha esito positivo, non ci sarà alcun output e restituirà zero.
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop % ln -s example_fcc_file.txt fcc_link.txt
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop %
Per verificare che il tuo collegamento simbolico sia andato a buon fine, puoi utilizzare ls
comando. Il ls
il comando elencherà le informazioni sui file e il -l
flag rappresenta il collegamento simbolico.
ls -l fcc_link.txt
Quando esegui quel comando, dovresti vedere questo tipo di risultato nel terminale.
lrwxr-xr-x 1 jessicawilkins staff 20 Feb 19 19:56 fcc_link.txt -> example_fcc_file.txt
Il fcc_link.txt -> example_fcc_file.txt
parte dell'output mostra che il collegamento simbolico punta al file chiamato example_fcc_file.txt
.
Dovresti anche vedere il nuovo link simbolico nella tua directory.
Come creare un collegamento simbolico a una directory
In questo esempio, vogliamo creare un collegamento simbolico chiamato my_music
che punterà alla mia cartella Musica nella directory home del mio computer.
Innanzitutto, assicurati di essere nella directory home. Puoi eseguire cd
per tornare alla tua home directory nella riga di comando.
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop % cd
jessicawilkins@Dedrias-MacBook-Pro-2 ~ %
È quindi possibile utilizzare il ln
comando per creare un collegamento simbolico alla directory Musica.
ln -s /Users/jessicawilkins/Music ~/my_music
In caso di successo, dovresti vederlo nella home directory.
Come rimuovere un collegamento simbolico
Per rimuovere il collegamento simbolico puoi utilizzare il unlink
o rm
comando.
Se volessimo rimuovere il fcc_link.txt
collegamento simbolico che abbiamo creato in precedenza, quindi possiamo utilizzare uno di questi comandi:
rm fcc_link.txt
unlink fcc_link.txt
Ora dovremmo vedere che il collegamento simbolico è stato rimosso dalla nostra directory.
Come sovrascrivere i collegamenti simbolici
Se proviamo a creare un nuovo collegamento simbolico chiamato fcc_link.txt
, risulterà in un errore perché è già in uso e punta a un altro file.
ln: fcc_link.txt: File exists
Puoi sovrascrivere questo errore usando la forza (-f
) opzione.
ln -sf example_fcc_file.txt fcc_link.txt
Come saperne di più sul comando ln
Se vuoi saperne di più su ln
comando, quindi puoi leggerlo in man
pagine (manuale per l'utilizzo dei comandi Linux).
Esegui man ln
nel tuo terminale e dovresti vedere le pagine man per ln
comando.
LN(1) BSD General Commands Manual LN(1)
NAME
link, ln -- make links
SYNOPSIS
ln [-Ffhinsv] source_file [target_file]
ln [-Ffhinsv] source_file ... target_dir
link source_file target_file
DESCRIPTION
The ln utility creates a new directory entry (linked file) which has the same modes as the original file. It is
useful for maintaining multiple copies of a file in many places at once without using up storage for the
``copies''; instead, a link ``points'' to the original copy. There are two types of links; hard links and sym-
bolic links. How a link ``points'' to a file is one of the differences between a hard and symbolic link.
The options are as follows:
-F If the target file already exists and is a directory, then remove it so that the link may occur. The -F
option should be used with either -f or -i options. If none is specified, -f is implied. The -F option
is a no-op unless -s option is specified.
-h If the target_file or target_dir is a symbolic link, do not follow it. This is most useful with the -f
option, to replace a symlink which may point to a directory.
-f If the target file already exists, then unlink it so that the link may occur. (The -f option overrides
Conclusione
Un collegamento simbolico (simbolico) è un tipo di file che punta ad altri file o directory (cartelle) in Linux. Puoi creare un collegamento simbolico (simbolico) usando il ln
comando nella riga di comando.
I collegamenti simbolici sono utili perché fungono da collegamenti a un file o una directory.
Ecco la sintassi di base per creare un collegamento simbolico a un file utilizzando il terminale:
ln -s existing_source_file optional_symbolic_link
Ecco la sintassi di base per creare un collegamento simbolico a una directory utilizzando il terminale:
ln -s path_to_existing_directory name_of_symbolic_link
Per rimuovere il collegamento simbolico puoi utilizzare il unlink
o rm
comando:
rm name_of_symbolic_link
unlink name_of_symbolic_link
Se devi rimuovere un collegamento simbolico, puoi utilizzare questo comando:
ln -sf path_to_existing_directory name_of_symbolic_link
Spero che questo articolo sui collegamenti simbolici ti sia piaciuto e buona fortuna per il tuo viaggio di programmazione.