Come creare hard link Linux?

How Create Hard Links Linux



Il collegamento è una caratteristica interessante in Linux. Nei sistemi operativi simili a UNIX, tutto è un file. Un file è fondamentalmente un collegamento a un inode, un tipo speciale di struttura dati che memorizza tutto su un determinato file tranne il nome originale e il contenuto effettivo. Questa è la funzionalità che i collegamenti sfruttano. Creare un collegamento significa creare un altro file che punta allo stesso inode sottostante di un altro file. In molte situazioni, è un metodo incredibilmente utile.

Scopri come creare hard link in Linux.







Collegamenti reali in Linux

Prima di approfondire, parliamo un po' di hard e soft link. Ci sono alcune differenze fondamentali tra loro. Nel caso di un collegamento reale, può esistere solo nello stesso filesystem, mentre il collegamento simbolico persisterà tra i filesystem. Inoltre, può essere eseguito solo su file normali. Inoltre, non puoi creare collegamenti fisici di directory, quindi non crea un ciclo di directory.



Se un file del collegamento reale viene eliminato, rimuove il collegamento dall'inode sottostante.



Il comando ls può stampare l'inode di un file/directory di destinazione.





$ls -al <file_o_dir>

Creazione di hard link

La generazione di un hard link è abbastanza semplice. Per creare collegamenti, ln è lo strumento dedicato disponibile in quasi tutte le distribuzioni Linux.



Utilizzare la seguente struttura di comando per creare un collegamento reale. Nota che la destinazione dovrebbe essere all'interno dello stesso filesystem. Il flag -v è per la modalità dettagliata.

$ln -v <fonte> <collegamento>


Verifica il risultato.

$ls -al <obbiettivo>


Per quanto riguarda l'hard linking della directory, non è consentito. Ipoteticamente, è ancora possibile creare, ma la maggior parte delle distribuzioni Linux disabilita tale funzione, anche se si esegue l'azione con privilegi di root. Per il collegamento alla directory, utilizzare i collegamenti software.

Link morbidi

I collegamenti software vengono comunemente definiti collegamenti simbolici. Il collegamento software può essere cross-filesystem. Per definizione, non è un file standard, ma piuttosto un file che punta a un file esistente. Qui, il file di collegamento software avrà un valore inode diverso, ma punta al file originale.

Proprio come la creazione di hard link, utilizzeremo lo strumento ln. Per dichiarare di creare un collegamento software, aggiungere il flag -s.

$ln -vs <fonte> <destinazione>


Verifica il risultato.

$ls -al <obbiettivo>

Se esiste già un collegamento, è possibile aggiornarlo utilizzando il flag -f che obbliga ln ad aggiornare il collegamento senza alcuna conferma. In alternativa, puoi usare il flag -i per la creazione di collegamenti interattivi.

$ln -sf <fonte> <destinazione>


Non dimenticare di verificare il risultato.

$ls -al <obbiettivo>

Trovare link

Supponendo che ci siano più collegamenti allo stesso file, tenerne traccia può diventare difficile. In una situazione del genere, usa questo metodo per scoprire tutti i collegamenti.

Per questo, abbiamo bisogno del valore inode del file originale. Utilizzare il seguente comando per scoprire il numero di inode.

$ls -al <target_file>


Ora, usa il numero di inode per scoprire tutti i collegamenti a quel file. Qui, la directory attiva corrente dovrebbe essere la directory in cui si trova il file originale.

$trova.-inum <inode_value>

Eliminazione dei collegamenti

Se vuoi disabilitare un collegamento reale, il modo per farlo è eliminare il file collegato.

$rm <collegamento>

Pensieri finali

Il collegamento è uno strumento potente che puoi utilizzare in molte situazioni. Sebbene abbia i suoi limiti, può offrire eccellenti vantaggi a molti scenari.

Ti interessa approfondire il comando ln? Scopri come usare il comando ln .

Buon calcolo!