Creazione di collegamenti simbolici (Hard e Symbolic/Soft link) su Linux
In questo breve tutorial andremo descrivere come creare un symbolic e hard link su Linux.
Consideriamo una macchina CentOS 7 preinstallata (per l’installazione seguire questo articolo), possiamo dare una breve spiegazione di cosa è l’hard ed il symbolic link, in particolare il symbolic link (soft link) è un file/collegamento ad un altro file all’interno del filesystem, mentre l’ hard link è un file che punta allo stesso inode, nell’ultimo caso eliminando un file verrà eliminato un collegamento a quell’ inode.
Iniziamo creando un hard link, per crearlo utilizzeremo il comando ln
cd
touch pippo.sh
chmod +x pippo.sh
creiamo un piccolo script
cat pippo.sh
#!/bin/sh
echo Ciao Mondo
adesso creiamo l’ hard link
ln pippo.sh hard_link
ls -ltr
-rwxr-xr-x 2 root root 81 3 mag 18.48 pippo.sh
-rwxr-xr-x 2 root root 81 3 mag 18.48 hard_link
se eseguiamo hard_link avremo lo stesso risultato di pippo.sh, a questo punto utilizzando il comando stat verifichiamo che i due file abbiano lo stesso inode
[root@localhost ~]# stat hard_link
File: “hard_link”
Dim.: 26 Blocchi: 8 Blocco di IO: 4096 file regolare
Device: fd00h/64768d Inode: 33942294 Coll.: 2
Accesso: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Accesso : 2018-05-03 18:50:02.384000000 +0200
Modifica : 2018-05-03 18:49:59.471000000 +0200
Cambio : 2018-05-03 18:49:59.497000000 +0200
Creazione: –
[root@localhost ~]# stat pippo.sh
File: “pippo.sh”
Dim.: 26 Blocchi: 8 Blocco di IO: 4096 file regolare
Device: fd00h/64768d Inode: 33942294 Coll.: 2
Accesso: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Accesso : 2018-05-03 18:50:02.384000000 +0200
Modifica : 2018-05-03 18:49:59.471000000 +0200
Cambio : 2018-05-03 18:49:59.497000000 +0200
Creazione: –
ed è proprio così. Vediamo adesso il soft link o symbolic link, in questo caso dovremo utilizzare la seguente sintatti
ln -s pippo.sh soft_link
avremo
lrwxrwxrwx 1 root root 8 3 mag 18.57 soft_link -> pippo.sh
come è possibile notare il tipo di file è cambiato, infatti il primo carattere è una l (indica che è un collegamento ad un altro file), verifichiamo l’ inode
[root@localhost ~]# stat soft_link
File: “soft_link” -> “pippo.sh”
Dim.: 8 Blocchi: 0 Blocco di IO: 4096 collegamento simbolico
Device: fd00h/64768d Inode: 33935898 Coll.: 1
Accesso: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Accesso : 2018-05-03 18:57:18.505000000 +0200
Modifica : 2018-05-03 18:57:16.340000000 +0200
Cambio : 2018-05-03 18:57:16.340000000 +0200
Creazione: –
possiamo notare che il collegamento adesso punta ad un nuovo inode.