Come trovare ed eliminare i simbolistici rotti su Linux

Nov 12, 2024
Linux
Fatmawati Achmad Zaenuri / Shutterstock

I collegamenti simbolici su Linux sono una caratteristica fantastica, ma possono diventare rotti e lasciati puntare al nulla. Ecco come individuare i collegamenti simbolici rotti, riesaminali e rimuoverli dal tuo sistema se è necessario.

Collegamenti simbolici 101.

Collegamenti simbolici , chiamati anche "link soft" e "Symlinks", sono una forma di scorciatoie che possono indicare file e directory. Un simbolico sembra proprio come un file regolare o una directory in una finestra di file manager. Si presenta anche come una voce in un elenco di file in una finestra di terminale. Il file o la directory a cui i punti Symlink possono essere ovunque nell'albero del file system.

Ad esempio, diciamo che hai un simbolo della tua home directory denominato "dave-link" che punta a un file chiamato "text-file.txt" situato da qualche altra parte nell'albero del file system. I comandi che si utilizzano sul file Symlink vengono automaticamente applicati al file a cui punta. Se provi ad usare gatto o meno Sullo Symlink, vedrai effettivamente il contenuto del file "Text-file.txt".

Un'installazione standard Linux contiene molti simboloni. Anche se non crei te stesso, il sistema operativo li usa. Le routine di installazione dell'applicazione utilizzano spesso i collegamenti simbolici per puntare ai file di eseguibili. Quando il software viene aggiornato, il file binario viene sostituito con la nuova versione, e tutti i collegamenti simbolici continuano a lavorare come prima, purché il nome del nuovo file sia lo stesso del vecchio.

Possiamo facilmente vedere alcuni symklink usando ls. nella directory principale. Alcune delle voci sono visualizzate in un colore diverso dal nostro Ubuntu 20.10. Test macchina, vengono visualizzati in blu chiaro.

Digitino quanto segue:

  LS /  

Possiamo fare un aspetto più profondo usando il -L. (Lungo elenco) opzione. Digitino il seguente comando per guardare tutte le voci "Libr" e il singolo "Bin" Entrata:

 ls -l / lib * / bin 

All'inizio di ogni linea è una "L", che indica che l'oggetto è un simbolo. Il testo dopo "- & gt;" Spettacoli su ciò che sta indicando il simbolo. Nel nostro esempio, gli obiettivi sono tutte directory.

Le autorizzazioni sono elencate come lettura, scrittura ed eseguite per il proprietario, il Gruppo e altri. Queste sono voci false predefinite. Non riflettono le autorizzazioni effettive sugli oggetti in cui il punto elenchi di Symlinks. Sono le autorizzazioni sul file di destinazione o nella directory che prendono la precedenza e sono onorate dal file system.

Symlink rotto

Un link simbolico è rotto (o lasciato a sinistra) quando il file a cui punti è cancellato o spostato in un'altra posizione. Se la routine di disinstallazione di un'applicazione non funziona correttamente, o viene interrotta prima che si completa, potresti essere lasciato con i simboloni interrotti.

Se qualcuno elimina manualmente un file senza conoscere gli schemi simbolici, quei lin fori non funzionerà più. Saranno come segnali stradali che indicano una città che è stata bulldottata.

Possiamo facilmente vedere questo comportamento utilizzando un simbolo Symlink chiamato "Ciao" nella directory corrente. Digitino quanto segue, usando ls. per vederlo:

 LS -L 

Indica un programma chiamato "HTG" in una directory chiamata "BIN". Se "eseguiamo" il Symlink, esegue il programma per noi:

 ./ Ciao 

Ora possiamo controllare se questo è ciò che sta accadendo eseguendo direttamente il programma:

 ../ Bin / HTG 

Come previsto, otteniamo la stessa risposta. Eliminiamo il file del programma:

 rm ../bin/htg

Ora, quando guardiamo il Symlink, vediamo che è elencato in rosso perché Linux sa che è rotto. Ci dice anche di ciò che è solito puntare, quindi possiamo sostituire il file, ricompilare il programma o fare tutto il necessario per riparare il simbolo.

Si noti che se proviamo a eseguire il simbolo Symlink, l'errore riceviamo riferimenti il ​​nome del simbolo, piuttosto che il nome del programma a cui i punti Symlink.

Digitino quanto segue:

 ./ Ciao 

Trovare simboli discutibili

Versioni più moderne di trova avere il xtype. (tipo di tipo esteso), che semplifica la ricerca di simbolistici rotti . Useremo il l. Bandiera con xtype. , per dirlo alla ricerca di collegamenti. Usando trova e xtype. come segue, senza nessuno degli altri genere Bandiere, forze xtype. Per tornare collegamenti interrotti:

 Trova. -xtype l 

L'esecuzione del comando nella nostra directory home test trova un bel po 'di symlink rotto. Si noti che la ricerca è ricorsiva per impostazione predefinita, quindi cerca automaticamente tutte le sottodirectory.

Il simbolo "Ciao" che abbiamo rotto apposta è elencato, come ci aspettavamo. Uno degli altri collegamenti simbolici è correlato al browser Firefox e il resto è associato a Snaps.

Se tu tuppe l'uscita attraverso WC con il -L. (linee) opzione, possiamo contare le linee, che è la stessa del conteggio dei simboloni interrotti.

Digitino quanto segue:

 Trova. -xtype L | WC -L 

Siamo informati che abbiamo 24 symlink rotti che puntano a nulla.

Trova, review, e quindi rimuovi

Prima di correre ed eliminare tutti i simboli interrotti, guarda attraverso i risultati del trova comando. Vedi se c'è una ragione valida per uno qualsiasi dei simboloni interrotti.

A volte, il simbolo potrebbe essere il problema, piuttosto che il file di destinazione. Se il simbolo è stato creato in modo errato, potrebbe indicare nulla, ma è presente il vero obiettivo. Re-creazione del collegamento simbolico sarebbe la correzione in tal caso.

È anche possibile che un simbolo apparentemente rotto sia usato come qualcos'altro, come un indicatore di un blocco file o un altro indicatore di go / no go. Firefox fa questo; Questo è ciò che il primo simbolo della nostra lista è. Firefox non viene utilizzato sulla nostra macchina di prova, però, quindi è sicuro per noi cancellarlo.

È anche possibile che il bersaglio sia presente solo periodicamente, e questo è il comportamento previsto (e desiderato) di quel particolare software. Forse il file di destinazione viene copiato da un'altra macchina o il cloud, esegue la sua funzione e viene quindi cancellato, solo per essere sostituito da un programma diverso nel ciclo successivo.

Il collegamento simbolico rotto potrebbe anche essere un sintomo di un'installazione del software non riuscita. In tal caso, invece di eliminare il riquadro Symlink, è necessario risolvere manualmente o ripetere manualmente l'installazione.

Quando hai riparato i collegamenti interrotti devi mantenere, ripetere il comando per eseguire la ricerca. I simboli fissi dovrebbero quindi essere assenti dai risultati della ricerca.

Per l'amor di sicurezza, è meglio limitare le tue rimozioni simboli alle tue directory. Sii estremamente diffidente di gestire questi comandi come root o su directory di sistema.

Rimozione di symlink rotti

Il -exec.ec. (Esegui) Opzione esegue i comandi sul trova risultati di ricerca. Useremo rm Per eliminare ciascun simbolismo rotto. Il {} La stringa viene sostituita con il nome di ciascun simbolo rotto come ognuno è stato scoperto da trova .

Dobbiamo usare un punto e virgola ( ; ) Per terminare l'elenco dei comandi che vogliamo -exec.ec. correre. Useremo un backslash ( \ ) Per "fuggire" il punto e virgola, quindi è trattato come parte del trova comando, piuttosto che qualcosa Basamento dovrebbe agire

Digitino quanto segue:

 Trova. -xtype l -exec rm {} \; 

Siamo tornati al prompt dei comandi senza indicazione che qualsiasi cosa sia successo. Per verificare che i collegamenti interrotti siano stati rimossi, ripetiamo il comando per cercarli, come segue:

 Trova. -xtype l 

Non ci sono risultati corrispondenti, il che significa che i simboli dei link rotti sono stati rimossi.

Ricordati di rivedere prima

Ancora una volta, prenditi sempre il tempo per rivedere un elenco di collegamenti simbolici prima di eseguire il comando per eliminarli. Puoi evitare di eliminare qualsiasi non è sicuro di eseguire il comando per eliminarli nelle directory appropriate.

Ad esempio, sopra, avremmo potuto eseguire il comando nella directory ".snap", quindi rimosso manualmente il collegamento simbolico "Ciao" solitario. Ciò avrebbe lasciato intatto il riquadro Firefox Lock Symlink.


Linux - Articoli più popolari

Come utilizzare DB Browser per SQLite su Linux

Linux Dec 16, 2024

Fatmawati Achmad Zaenuri / Shutterstock Browser DB per SQLite Consente di visualizzare e modificare i database SQLITE su Linux. È possibile progettar..


Come utilizzare Strace per monitorare le chiamate di sistema Linux

Linux Jun 23, 2025

Fatmawati Achmad Zaenuri / Shutterstock.com I programmi Linux chiedono il kernel fare alcune cose per loro. Il strace Comando rivela qu..


Come aggiornare Arch Linux

Linux Jul 30, 2025

Progetto di Ubuntu Il tempo è arrivato a aggiornare il tuo sistema Arch Linux? Sia che tu sia in puro arco o una distribuzione a base arco come Manjar..


Cosa c'è di nuovo in Elementary OS 6 "Odin"

Linux Aug 14, 2025

Elementary, Inc. Ci sono Molte distribuzioni Linux. (distros) che le persone reclamo sono buone sostituzioni per Windows o MacOS. Ma ce ne sono pochi che han..


nativo di gioco su Linux può essere Dying, e va bene così

Linux Sep 27, 2025

DC Studio / Shutterstock.com Il Deck a vapore , annunciato nell'agosto del 2021, ha i cerchi di gioco di Linux che parlano del futuro dei giochi su ..


Cosa c'è di nuovo a Fedora 35

Linux Nov 2, 2024

Fedora 35, cappello rosso È gratuito Distribuzione di Linux. (Distro), è stato rilasciato il 2 novembre 2021. Da un'esperienza desktop aggiornata alle quiete dietro..


Come disattivare un PC Ubuntu

Linux Oct 12, 2025

Come tutti i personal computer, un PC che esegue il Ubuntu. Il sistema operativo desktop deve essere disattivato di tanto in tanto. La chiusura di Ubuntu è facile e hai diversi..


Come scaricare DNS in Linux

Linux Nov 14, 2024

La tua esperienza di navigazione su Internet è lenta sul tuo dispositivo Linux o i siti Web che stai visitando obsoleti o il sito Web sbagliato sono del tutto? Discutiamo di scaricare la cache..


Categorie