Crea sito
30 Settembre 2020

Officine Informatiche Roma

ICT SERVICES ROMA – BAZAAR

LINUX LEZ 10 – Collegamenti simbolici

3 min read
Notate come la prima lettera della lista è l e la voce sembra avere due nomi di file? Questo è un tipo speciale di file chiamato collegamento simbolico (noto anche come collegamento software o collegamento simbolico). Nella maggior parte dei sistemi simili a Unix, è possibile avere un file a cui fanno riferimento più nomi. Mentre il valore di questo potrebbe non essere ovvio, è davvero una funzione utile. Immagina questo scenario: un programma richiede l’uso di una risorsa condivisa di qualche tipo contenuta in un file chiamato “pippo”, ma “pippo” presenta frequenti cambi di versione. Sarebbe bene includere il numero di versione nel nome del file in modo che l’amministratore o l’altra parte interessata possa vedere quale versione di “pippo” è installata. Questo presenta un problema. Se cambiamo il nome della risorsa condivisa, dobbiamo rintracciare ogni programma che potrebbe usarlo e cambiarlo per cercare un nuovo nome di risorsa ogni volta che viene installata una nuova versione della risorsa.

Collegamenti simbolici

Mentre ci guardiamo intorno, è probabile che venga visualizzato un elenco di directory (ad esempio, / lib) con una voce come questa:

lrwxrwxrwx 1 root root 11 2018-08-11 07:34 libc.so.6 -> libc-2.6.so

Notate come la prima lettera della lista è l e la voce sembra avere due nomi di file? Questo è un tipo speciale di file chiamato collegamento simbolico (noto anche come collegamento software o collegamento simbolico). Nella maggior parte dei sistemi simili a Unix, è possibile avere un file a cui fanno riferimento più nomi. Mentre il valore di questo potrebbe non essere ovvio, è davvero una funzione utile. Immagina questo scenario: un programma richiede l’uso di una risorsa condivisa di qualche tipo contenuta in un file chiamato “pippo”, ma “pippo” presenta frequenti cambi di versione. Sarebbe bene includere il numero di versione nel nome del file in modo che l’amministratore o l’altra parte interessata possa vedere quale versione di “pippo” è installata. Questo presenta un problema. Se cambiamo il nome della risorsa condivisa, dobbiamo rintracciare ogni programma che potrebbe usarlo e cambiarlo per cercare un nuovo nome di risorsa ogni volta che viene installata una nuova versione della risorsa. Non sembra affatto divertente.

Qui è dove i collegamenti simbolici salvano il giorno. Supponiamo di installare la versione 2.6 di “foo”, che ha il nome di file “foo-2.6”, e quindi di creare un collegamento simbolico chiamato semplicemente “foo” che punta a “foo-2.6″. Ciò significa che quando un programma apre il file ” pippo ”, in realtà sta aprendo il file“ pippo-2.6. ”Ora tutti sono felici. I programmi che si basano su “pippo” possono trovarlo e possiamo ancora vedere quale versione reale è installata. Quando è il momento di passare a “pippo-2.7”, aggiungiamo semplicemente il file al nostro sistema, eliminiamo il collegamento simbolico “pippo” e ne creiamo uno nuovo che punta alla nuova versione. Questo non solo risolve il problema dell’aggiornamento della versione, ma ci consente anche di mantenere entrambe le versioni sul nostro computer.

Immagina che “foo-2.7” abbia un bug (maledetto quegli sviluppatori!), E dobbiamo tornare alla vecchia versione. Ancora una volta, eliminiamo semplicemente il collegamento simbolico che punta alla nuova versione e creiamo un nuovo collegamento simbolico che punta alla vecchia versione.

L’elenco delle directory all’inizio di questa sezione (da / libdirectory di un sistema Fedora) mostra un collegamento simbolico chiamato libc.so.6 che punta a un file di libreria condivisa chiamato libc-2.6.so. Ciò significa che i programmi che cercano libc.so.6 otterranno effettivamente il file libc-2.6.so. Impareremo come creare collegamenti simbolici nel prossimo capitolo.

Tabella 4-3: esempi di caratteri jolly

Esempio                                                                  Risultato

*                                                                                 Tutti i files

g *                                                                 Qualsiasi file che inizia con g

b *                                                                 .txt Qualsiasi file che inizia con b seguito da qualsiasi carattere e termina con .txt

Dati???                                                        Qualsiasi file che inizia con Dati seguito esattamente da tre caratteri

[abc] *                                                          Qualsiasi file che inizia con a a, a b o a c

BACKUP. [0-9] [0-9] [0-9]                       Qualsiasi file che inizia con BACKUP. seguito da esattamente tre numeri

[[: upper:]] *                                               Qualsiasi file che inizia con una lettera maiuscola

[! [: digit:]] *                                               Qualsiasi file che non inizia con un numero

* [[: lower:] 123]                                      Qualsiasi file che termina con una lettera minuscola o con i numeri 1, 2 o 3

 NOTA: I caratteri jolly funzionano anche nella GUI

I caratteri jolly sono particolarmente preziosi non solo perché vengono utilizzati così frequentemente sulla riga di comando, ma perché sono supportati anche da alcuni file manager grafici.

  • In Nautilus (il gestore di file per GNOME), è possibile selezionare i file usando la voce di menu Modifica> Motivo >Modifica . Basta inserire un modello di selezione file con caratteri jolly e i file nella directory attualmente visualizzata verranno evidenziati per la selezione.

  • In alcune versioni di Dolphin e Konqueror (i file manager di KDE), puoi inserire i caratteri jolly direttamente sulla barra degli indirizzi. Ad esempio, se vuoi vedere tutti i file che iniziano con una minuscola u nella directory / usr / bin, inserisci / usr / bin / u * nella barra della posizione e verrà visualizzato il risultato. Molte idee originariamente trovate nell’interfaccia della riga di comando si fanno strada anche nell’interfaccia grafica. È una delle tante cose che rendono il desktop Linux così potente.

Translate »