Script Bash per ottenere Target Symlink

Script Bash per ottenere Target Symlink
Conosciamo tutti i collegamenti simbolici in Linux. Comunemente noto come Symlinks o Soft Links, un collegamento simbolico è un particolare file che indica un altro file o directory all'interno di qualsiasi filesystem.

In questo breve tutorial, esamineremo le basi dei collegamenti simbolici in Linux e creeremo un semplice script bash per ottenere il bersaglio del collegamento simbolico.

Tipi di collegamenti simbolici

Esistono principalmente due tipi di collegamenti simbolici, vale a dire:

Collegamenti duri:

I collegamenti duri sono puntatori diretti a un file o directory all'interno di un filesystem. I collegamenti difficili sono creabili solo nello stesso filesystem del file di destinazione.

Link soft:

D'altra parte, i collegamenti soft sono scorciatoie indirette per un file o una directory e possono esistere ovunque all'interno di un filesystem. I collegamenti soft possono indicare il file in un file di file diverso.

Come creare collegamenti simbolici

Per creare un collegamento simbolico in Linux, utilizziamo il comando LN. L'esecuzione del comando senza opzioni crea un collegamento duro al file di destinazione specificato.

La sintassi generale per il comando LN è:

ln [opzioni]

Come accennato, il comando sopra creerà un collegamento difficile al file di destinazione. Per creare un collegamento simbolico morbido, utilizzare l'opzione -s come:

ln -s [opzione]

Esempio 1

Prendiamo l'auth del file.Accedi /var /log. Possiamo creare un collegamento al file nella nostra home directory usando il comando come:

ln -s/var/log/auth.Auth registri.tronco d'albero

Il comando sopra creerà un collegamento che punta al file principale. Possiamo verificarlo usando il comando LS:

ls -la

Esempio n. 2

Puoi anche eseguire un'operazione simile su una directory. Per creare un collegamento a /var /log, utilizziamo il comando:

ln -s /var /log log

Allo stesso modo, viene creato un collegamento soft che punta alla directory target /var /log:

ls -la

Come rimuovere i collegamenti simbolici

Per rimuovere un collegamento simbolico, utilizziamo il comando Unkink seguito dal percorso del collegamento simbolico per rimuovere.

Per esempio:

UNLINK ~/LOG

NOTA: Se si elimina il file o la directory di destinazione, rimuovere il collegamento simbolico perché lasciarlo crea un collegamento rotto.

Come ottenere il file di destinazione o la directory del collegamento simbolico

Ogni collegamento simbolico indica un file o una directory di destinazione (a meno che non sia stato rotto). Per recuperare il file/directory di destinazione di un collegamento simbolico, utilizziamo questo comando che mostra il bersaglio di un collegamento simbolico.

Ad esempio, per ottenere l'obiettivo dell'autenticazione.file di registro creato in una sezione precedente, possiamo fare:

Auth readlink.tronco d'albero
/val/log/autentica.tronco d'albero

Una semplice sceneggiatura da bash per ottenere collegamenti simbolici

Usando i concetti sopra, possiamo assemblare un semplice script bash che accetta un percorso ed elenca tutti i collegamenti simil e i loro file di destinazione o directory.

Un semplice script come quello fornito di seguito dovrebbe fare il trucco.

#!/Bin/Bash
Echo "Fornisci la directory per valutare:"
Leggi Target_dir
CD $ target_dir
links = $ (trova . -maxdepth1 -ype l -ls | awk 'stampa $ 11')
per link nei collegamenti
Fare
echo "$ link -> $ (readlink $ link)"
Fatto

Lo script inizia chiedendo all'utente la directory di valutare. Quindi, lo script va alla directory fornita e trova tutti i collegamenti simbolici all'interno della directory e passa l'output su AWK.

AWK analizza l'output e individua solo i collegamenti simbolici e li salva a una variabile chiamata collegamenti.

Creiamo quindi un ciclo che afferra ogni collegamento nei collegamenti e valuta il loro valore target utilizzando il comando ReadLink.

Infine, facciamo eco al legame simbolico e alla directory target. Di seguito è riportato un output di esempio:

Nell'esempio sopra, troviamo tutti i collegamenti simil nella directory /etc e stampiamo il loro file o la directory di destinazione.

Conclusione

In questo tutorial, abbiamo discusso delle basi dell'uso di collegamenti simbolici in Linux. Abbiamo quindi creato un semplice script per trovare collegamenti simbolici in una directory specificata e mostrare la loro fonte e target.

Grazie per aver letto!