Como encontrar e excluir links de links quebrados no Linux

Nov 12, 2024
Linux
Fatmawati Achmad Zaenuri / Shutterstock

Os links simbólicos no Linux são uma característica fantástica, mas podem se tornar quebradas e deixadas apontando para nada. Veja como localizar links simbólicos quebrados, revisá-los e removê-los do seu sistema, se precisar.

Links simbólicos 101.

Links simbólicos , também chamado de "links suaves" e "symlinks", são uma forma de atalhos que podem apontar para arquivos e diretórios. Um symlink parece apenas como um arquivo ou diretório regular em uma janela do Gerenciador de arquivos. Também aparece como uma entrada em uma listagem de arquivos em uma janela de terminal. O arquivo ou diretório para o qual os pontos do symlink podem ser em qualquer lugar da árvore do sistema de arquivos.

Por exemplo, digamos que você tenha um link no seu diretório home chamado "Dave-link" que aponta para um arquivo chamado "Text-file.txt" localizado em outro lugar na árvore do sistema de arquivos. Comandos que você usa no symlink são aplicados automaticamente ao arquivo ao qual ele aponta. Se você tentar usar gato ou menos No symlink, você realmente verá o conteúdo do arquivo "Text-file.txt".

Uma instalação padrão do Linux contém muitos links de links. Mesmo se você não criar nenhum, o sistema operacional os usa. As rotinas de instalação do aplicativo geralmente usam links symlinks para apontar para arquivos de execução. Quando o software é atualizado, o arquivo binário é substituído pela nova versão e todos os links simétricos continuam funcionando como antes, desde que o novo nome do novo arquivo seja o mesmo que o antigo.

Podemos facilmente ver alguns links simétricos usando ls. no diretório raiz. Algumas das entradas são exibidas em uma cor diferente Ubuntu 20.10. máquina de teste, eles são exibidos em azul claro.

Digimos o seguinte:

  ls /  

Podemos dar uma aparência mais profunda usando o -eu Opção (Long Listing). Digitos o seguinte comando para olhar todas as entradas "lib" e a entrada única "bin":

 ls -l / lib * / bin 

No início de cada linha é um "L", o que indica que o item é um link Symlink. O texto após "- & gt;" mostra no que o symlink está apontando. Em nosso exemplo, os alvos são todos os diretórios.

As permissões são listadas como leitura, gravação e execução para o proprietário, o grupo e outros. Estas são entradas falsas padrão. Eles não refletem as permissões reais sobre os objetos em que o ponto de links simbólicos. São as permissões no arquivo de destino ou diretório que recebe precedência e são honrados pelo sistema de arquivos.

Links quebrados

Um symlink é quebrado (ou deixado pendurado) quando o arquivo em que ponto é excluído ou movido para outro local. Se a rotina de desinstalação de um aplicativo não funcionar corretamente ou ser interrompida antes, poderá ser deixada com links de links quebrados.

Se alguém excluir manualmente um arquivo sem saber, os links simbólicos não funcionarão mais. Eles serão como sinais de trânsito apontando para uma cidade que foi arrogante.

Podemos ver facilmente esse comportamento usando um symlink chamado "Hello" no diretório atual. Digimos o seguinte, usando ls. Para ver:

 ls -l 

Aponta para um programa chamado "HTG" em um diretório chamado "bin". Se "executarmos" o symlink, executará o programa para nós:

. Ola 

Agora podemos verificar se é isso que está acontecendo executando o programa diretamente:

 ../ bin / htg 

Como esperado, recebemos a mesma resposta. Vamos excluir o arquivo do programa:

 rm ../bin/htg

Agora, quando olhamos para o symlink, vemos que está listado em vermelho porque o Linux sabe que está quebrado. Também nos diz no que costumava apontar, para que possamos substituir o arquivo, recompile o programa ou faça o que for necessário para reparar o link Symlink.

Observe que, se tentarmos executar o symlink, o erro recebemos referências o nome do link, em vez do nome do programa para o qual os pontos do link.

Digimos o seguinte:

. Ola 

Encontrando sylinks quebrados

Mais modernas versões de achar tenha o XTYPE. (Tipo Extended) Opção, que simplifica encontrar links simpáticos quebrados . Nós vamos usar o. eu bandeira com XTYPE. para dizer para procurar links. Usando achar e XTYPE. como segue, sem qualquer um dos outros modelo Bandeiras, forças XTYPE. Para retornar links quebrados:

 encontrar. -xtype l 

Executar o comando no nosso diretório home de teste encontra alguns links simbólicos quebrados. Observe que a pesquisa é recursiva por padrão, portanto, pesquisa todos os subdiretórios automaticamente.

O symlink "Olá" que quebramos de propósito é listado, como esperávamos. Um dos outros symlinks está relacionado ao navegador do Firefox, e o restante está associado a Snaps.

Se nós pipamos a saída através banheiro com o -eu Opção (linhas), podemos contar as linhas, o que é o mesmo que contando os links símbolos quebrados.

Digimos o seguinte:

 encontrar. -XTYPE L | WC -L 

Estamos informados de que temos 24 links quebrados apontando para nada.

Encontrar, revisar e remover

Antes de se apressar e excluir todos os links quebrados, olhe através dos resultados do achar comando. Veja se há um motivo válido para qualquer um dos links partidários quebrados.

Às vezes, o symlink pode ser o problema, em vez do arquivo de destino. Se o symlink foi criado incorretamente, ele poderá apontar para nada, mas o alvo real está presente. Recriando o symlink seria a correção nesse caso.

Também é possível que um symlink aparentemente quebrado esteja sendo usado como outra coisa, como um indicador de um bloqueio de arquivo ou outro indicador de Go / No Go. O Firefox faz isso; Isso é o que o primeiro symlink da nossa lista é. O Firefox não é usado em nossa máquina de teste, por isso, é seguro para nós deletá-lo.

Também é possível que o alvo esteja apenas presente periodicamente, e este é o comportamento esperado (e desejado) desse software específico. Talvez o arquivo de destino seja copiado de outra máquina ou da nuvem, ele executa sua função e é excluído novamente, apenas para ser substituído por um programa diferente no próximo ciclo.

O symlink quebrado também pode ser um sintoma de uma instalação de software que falhou. Nesse caso, em vez de excluir o link do symlink, você deve consertá-lo manualmente ou repetir a instalação.

Quando você corrigiu os links quebrados, você precisa manter, repita o comando para executar a pesquisa. Os links fixos devem então estar ausentes dos resultados da pesquisa.

Por causa da segurança, é melhor limitar suas remoções de links symlink aos seus próprios diretórios. Seja extremamente cauteloso de executar esses comandos como diretórios de root ou em sistemas.

Removendo links de links quebrados

o -exec. Opção (Execute) Executa comandos no achar Procurar Resultados. Nós vamos usar rm. para excluir cada symlink quebrado. o {} A string é substituída pelo nome de cada link quebrado como cada um é descoberto por achar .

Temos que usar um ponto e vírgula ( ; ) Para encerrar a lista de comandos que queremos -exec. para correr. Nós vamos usar uma barra invertida ( \ ) "escapar" o ponto-e-vírgula, por isso é tratado como parte do achar comando, em vez de algo Bash. deve agir.

Digimos o seguinte:

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

Somos retornados ao prompt de comando sem nenhuma indicação de que qualquer coisa aconteceu. Para verificar se os links quebrados foram removidos, repetimos o comando para procurar por eles, da seguinte maneira:

 encontrar. -xtype l 

Não há resultados correspondentes, o que significa que os links quebrados foram removidos.

Lembre-se de revisar primeiro

Mais uma vez, observe sempre o tempo para revisar uma lista de links simpáticos antes de executar o comando para excluí-los. Você pode evitar excluir qualquer pessoa que você não tem certeza de executar o comando para deletá-los nos diretórios apropriados.

Por exemplo, acima, poderíamos ter executado o comando no diretório ".snap" e, em seguida, removeu manualmente o symlink solitário "Hello". Isso teria deixado o link de bloqueio do Firefox intocado.


Linux - Artigos mais populares

Como usar o Browser DB para SQLite no Linux

Linux Dec 16, 2024

Fatmawati Achmad Zaenuri / Shutterstock Navegador DB para SQLite Permite visualizar e editar bancos de dados SQLite no Linux. Você pode criar, criar ..


Como instalar o Desktop do Sinal no Linux

Linux Jan 22, 2025

Eliseu Geisler / Shutterstock.com Sinal é o aplicativo de mensagens de smartphone focado de privacidade todos parecem estar usando . Voc..


O que há de novo no Ubuntu 21.04 ‘Hirsuto Hippo’

Linux Apr 22, 2025

A nova versão de Ubuntu 21.04. , o hipopótamo Hirsute, foi lançado em 22 de abril de 2021. É um lançamento provisório da popular distribuição do Linux, com apenas nove..


5 Distribuições Linux especializadas com características únicas

Linux Jul 20, 2025

Lendo através da longa lista desinstalada de distros Linux existentes, os sabores diversos e os brotos de fora-brotos começam a desfocar juntos. Para remediar isso, reunimos algumas dist..


O jogo nativo no Linux pode estar morrendo, e tudo bem

Linux Sep 27, 2025

DC Studio / Shutterstock.com o Deck de vapor , Anunciado em agosto de 2021, tem círculos de jogos Linux falando sobre o futuro dos jogos no Linux. ..


Como adicionar um usuário ao arquivo sudoers no Linux

Linux Oct 30, 2025

Se um sudo O comando no Linux recebe uma mensagem de que um usuário "não está no arquivo sudoers", você precisará entrar na lista "sudoers". Vamos adicionar um usuário a sudoer..


5 Recursos do Ubuntu Linux que você deve usar

Linux Dec 6, 2024

O Ubuntu Linux é rico em recursos e vem com uma seleção com curadoria de software pré -instalado. Cavar um pouco mais profundo e você encontrará alguns recursos que deve estar usando. ..


Como definir um endereço IP estático no Ubuntu

Linux Oct 17, 2025

Sua rede doméstica depende de endereços IP para rotear dados entre dispositivos e, às vezes, para se reconectar à rede, o endereço de um dispositivo pode alterar. Veja como dar a um comput..


Categorias