GNU/Linux >> Linux Esercitazione >  >> Linux

Guida all'aggiunta di collegamenti simbolici Linux

Anni fa, quando ho iniziato con Linux e ho indossato abiti da uomo più giovane, una delle cose più difficili da capire per me su Linux era il concetto di collegamenti simbolici e il loro utilizzo nell'ambiente Linux.

Ora, quasi due decenni dopo, finalmente lo capisco. In questo articolo cercherò di spiegare esattamente cos'è un collegamento simbolico, le differenze tra un collegamento fisico e un collegamento simbolico, o collegamento simbolico, come creare e rimuovere entrambi i tipi e il loro valore nell'ambiente Linux.

Cos'è un hard link?

Nei sistemi operativi Linux e simili a Linux, praticamente tutto è un file. Con questo in mente, in Linux, un file è solo un collegamento a un inode. Un inode è una struttura di dati che mantiene tutto ciò che riguarda un file separato dal suo nome e dal contenuto effettivo.

Ad alcuni utenti Linux piace pensare a un collegamento fisico come un nome aggiuntivo per un file esistente. Quindi, quando crei un collegamento reale, stai semplicemente associando due o più nomi di file allo stesso inode.

Per gli utenti che hanno più familiarità con Windows, un hard link Linux è molto simile a un hard link Windows che crei con il comando DOS:

C:/> mklink /h "link" "target"

Sembra un concetto problematico. Vediamo se creiamo un hard link nel terminale Linux; rende le cose più chiare.

Come creare un Hard Link

Utilizziamo ln comando per creare file di collegamento in Linux. Il formato del comando ln per creare un collegamento fisico è:

# ln "source" "link"
# ln "/path/to/source" "/path to link"
# ln "target" "link"
# ln "target" "directory"

Dove "source" è un file esistente e "link" è il file da creare o il nostro hard link.

Quindi, nel seguente esempio, andremo a

Crea il nostro file "sorgente".

# echo 'This is the FOSS Linux Hard Link example' > FOSS

Crea il nostro file "link".

# ln FOSS Linux

Elenca il nostro file "sorgente" creato (FOSS) e il nostro "file di collegamento" (Linux).

# ls -li FOSS Linux

Se guardi il nostro output dai nostri ls comando, possiamo vedere che gli inode corrispondono. Abbiamo usato -i opzione specificatamente con il nostro comando ls in modo da poter vedere gli inode dei nostri file, in questo caso, 9448255 , per entrambi. Ricorda, con collegamenti reali; stiamo "solo associando due o più nomi di file con lo stesso inode".

Inoltre, nota che la terza colonna del nostro output mostra il numero 2 . Questo è il numero totale di collegamenti reali al file. Qui, 2 .

Si noti che non è possibile creare collegamenti reali per una directory. Quindi, ad esempio, non puoi creare un hard link per fare riferimento alla directory /home/tut . Non puoi nemmeno creare collegamenti reali per directory e file su un filesystem o una partizione diversi.

Cos'è un collegamento simbolico?

I collegamenti simbolici o simbolici (a volte chiamati collegamenti morbidi) erano molto più facili da digerire per me rispetto ai collegamenti reali. Per ottenere l'essenza di un collegamento simbolico, pensa a un collegamento di Windows. Che tutto un collegamento simbolico sia un puntatore (o collegamento) al file effettivo. A differenza dei collegamenti reali, i collegamenti simbolici non sono due file che fanno riferimento allo stesso inode. Invece, il collegamento simbolico è solo una "scorciatoia" al file vero e proprio.

Creiamo un esempio di collegamento simbolico ed esploriamo cosa intendo.

Come creare un collegamento simbolico

Proprio come con un hard link, utilizziamo ln comando per creare un collegamento simbolico. Solo per creare il collegamento simbolico, utilizziamo i -s qualificatore (ln -s ) per specificare che il collegamento che stiamo creando è un collegamento simbolico.

Creiamo un collegamento simbolico. Ti ricorderai da dove eravamo rimasti con i nostri file hard link in precedenza. Ci costruiremo su questo.

Creiamo il nostro file di collegamento simbolico.

# ln -s FOSS Is_Great

Ora esamineremo i nostri file.

# ls -li FOSS Linux Is_Great

Osservando il nostro output aggiornato dai nostri ls modificati comando, possiamo vedere che non è cambiato nulla con i nostri collegamenti fisici, ma il nostro collegamento simbolico è ora incluso. L'inode del nostro nuovo file è diverso dai nostri due collegamenti fisici e la seconda colonna inizia con una l . Il l denota che il file è un collegamento simbolico. Puoi vedere che il collegamento simbolico (o collegamento) appena creato punta al file per cui è un collegamento simbolico. Qui, FOSS (È_fantastico> FOSS ).

Conclusione

Si spera che, dopo aver letto il nostro articolo, tu abbia una migliore comprensione dei collegamenti reali e dei collegamenti simbolici o dei collegamenti simbolici. In caso di problemi, non posso consigliare ln man abbastanza pagina.

In caso di domande, chiedi nei commenti qui sotto e ti ricontatteremo.


Linux
  1. Come creare collegamenti rigidi e simbolici in Linux

  2. Spiegazione di hard link e soft link in Linux

  3. Perché i collegamenti fisici alle directory non sono consentiti in Unix/linux?

  4. Che cos'è Soft Links e Hard Links nel file system Linux

  5. Differenza tra soft link e hard link in Linux

Come rimuovere i collegamenti simbolici su Linux

Come creare collegamenti simbolici su Linux

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

Il comando ln in Linux:crea collegamenti soft e hard

Soft Links in Linux:il riferimento completo

Come ottenere un elenco di collegamenti simbolici su Linux