2011-01-09

Link in unix/linux - 1


In Linux, unix e tutti i sistemi da essi derivati i link rivestono un ruolo molto importante, per questo è bene conoscerne le caratteristiche ed il comportamento.
Esistono due tipi di link, quelli fisici (o hard nella terminologia inglese) e quelli simbolici (o symbolic). I due tipi si differenziano principalmente nella natura e di conseguenza hanno comportamenti e vincoli diversi, il comando da eseguire per creare dei link dalla shell è ln, senza opzioni per i link fisici e con l'opzione -s per quelli simbolici; i parametri da fornire sono il file origine del collegamento ed il nuovo file che sarà collegato al primo, per esempio:
echo "contenuto del file originale" >file1
ln file1 file2
ln -s file1 file3
ls -l file*
ogni singolo comando viene eseguito senza generazione di output ad eccezione dell'ultimo che mostrerà l'effetto dei primi tre ovvero file1 che il comando echo tramite la direttiva di redirezione ha creato con la stringa fornita come parametro. file2 che ha la stessa identica dimensione di file1 e come vedremo in seguito lo stesso contenuto.
file3 di dimensione di soli 5 byte.

Possiamo verificare con il comando
cat file1;cat file2;cat file3
si ottiene tre volte la stringa inserita nel primo comando echo della prima serie di comandi.
I tre file, per l'utilizzo che ne può fare l'utente e le sue applicazioni, hanno lo stesso contenuto, e lo stesso contenuto non significa che hanno tre contenuti uguali, è veramente lo stesso per tutti.
Proseguiamo con un nuovo comando che aggiungerà del contenuto al primo file
echo "contenuto aggiunto" >>file1
ripetendo l'operazione per recuperare il contenuto dei file:
cat file1;cat file2;cat file3
si ottengono per tre volte le due stringhe contenute nel file1 e di conseguenza nel file2 e nel file3.
Questo è l'effetto che si ha utilizzando dei link, più file sono collegati tra loro in modo tale da permettere di recuperare gli stessi dati da più vie di accesso.
L'utilità di avere due file nella stessa directory con lo stesso contenuto non è di immediata comprensione ma anche questo ha un suo utilizzo molto diffuso nelle directory lib che contendono le librerie, quei file che finiscono per .a e .so.
L'aggiunta di contenuto a file2 fornirà lo stesso effetto.

segue...

Nessun commento:

Posta un commento