Como encontrar e corrigir links simbólicos quebrados no Linux

Quer saber mais sobre como excluir links simbólicos quebrados em seu sistema? Talvez alguém tenha lhe contado como links simbólicos inativos ocupam espaço em seu dispositivo de armazenamento e agora você deseja se livrar deles para sempre.

Felizmente, existem vários utilitários disponíveis que você pode baixar em seu computador Linux para gerenciar links simbólicos. Essas ferramentas também o ajudarão a encontrar links de software quebrados e consertá-los permanentemente.

Aqui, discutiremos como você pode relatar e corrigir links simbólicos quebrados em seu sistema usando links simbólicos e o comando find .

Geralmente, todo sistema de computador tem dois tipos de links — links físicos e links físicos. Links físicos são entradas de diretório que vinculam um nome específico a um arquivo presente em seu sistema. Esses são os arquivos originais armazenados em um endereço específico em seu armazenamento.

Por outro lado, os links virtuais são strings de texto que ligam dois diretórios ou arquivos entre si. Os atalhos do programa são um ótimo exemplo de links simbólicos. Suponha que o arquivo A tenha um link simbólico com o arquivo B. Isso significa que o arquivo A armazenará o caminho absoluto ou relativo para o arquivo B.

Relacionado: Como Criar um Symlink no Linux

Para criar um link simbólico:

  1. Inicie o terminal pressionando Ctrl + Alt + T no teclado.
  2. Crie um novo arquivo de texto denominado text.txt .
     touch text.txt
  3. Vincule outro arquivo de texto ( outro.txt ) ao arquivo que você acabou de criar ( text.txt ).
     ln -s text.txt another.txt

Você acabou de vincular dois arquivos de texto diferentes usando um link simbólico. O comando ln é a maneira padrão de criar links simbólicos em um sistema operacional baseado em Linux. O -s no comando mencionado acima representa links simbólicos.

Relacionado: Como usar o comando ls no Linux

O principal problema com links simbólicos é que, se você excluir ou mover o arquivo de destino, o link simbólico não será removido automaticamente. Em vez disso, o link agora aponta para um arquivo que nem mesmo está presente em seu sistema. Esses links são conhecidos como links pendentes, quebrados, órfãos ou inativos.

Primeiro, você precisa confirmar se existe um link simbólico no sistema. Você pode fazer isso facilmente usando os comandos ll e grep .

 ll | grep txt

O comando acima listará todos os links simbólicos associados aos arquivos de texto em seu diretório de trabalho atual.

Agora, se formos quebrar o link simbólico que criamos acima, excluindo o arquivo de texto pai ( text.txt ):

 rm text.txt

O link simbólico será interrompido e não será removido do seu sistema. Você pode confirmar isso digitando ll | grep txt comando em seu terminal novamente.

Embora alguns links simbólicos quebrados não façam nenhum dano ao seu computador, isso pode gradualmente se tornar mil em nenhum momento. É por isso que é necessário monitorar links pendentes em seu sistema.

A única maneira de consertar esses links simbólicos quebrados é excluindo-os. Seu sistema contém centenas de links pendentes e ninguém tem tempo para verificar esses links manualmente. Nesses casos, as ferramentas e comandos do Linux são realmente úteis.

Symlinks é um utilitário poderoso que fornece todas as ferramentas de que você precisa para gerenciar e corrigir links simbólicos corrompidos em seu sistema. Como não é instalado na maioria das distribuições Linux por padrão, você terá que instalá-lo manualmente.

Você pode usar o Pacman para instalar o pacote no Arch Linux :

 sudo pacman -S symlinks

No Fedora:

 sudo dnf install symlinks

No CentOS:

 sudo yum install symlinks

Em distribuições baseadas em Debian:

 sudo apt-get install symlinks

Se você estiver executando o Ubuntu, antes de instalar o pacote de links simbólicos, você terá que adicionar o repositório universe à lista de repositórios do seu sistema.

 sudo add-apt-repository universe

Depois de instalar os links simbólicos com sucesso, você precisa verificar se há links órfãos em seu sistema. Para fazer isso, digite:

 symlinks .

A. O caractere (ponto) refere-se ao diretório de trabalho atual. Se você deseja relatar links simbólicos quebrados em seu diretório / home , você pode fazer isso digitando:

 symlinks /home

Se um link quebrado estiver presente em seu sistema, você receberá uma saída parecida com esta.

 dangling: /home/sharmadeepesh/another.txt -> test.txt

Para excluir rapidamente o link simbólico relatado, você pode usar o sinalizador -d com o comando padrão.

 symlinks -d .

Para excluir links simbólicos pendentes no diretório / home , digite:

 symlinks -d /home

Desta vez, a saída não apenas listará o link quebrado, mas também relatará que o link foi excluído.

 dangling: /home/sharmadeepesh/another.txt -> test.txt
deleted: /home/sharmadeepesh/another.txt -> test.txt

Para relatar e excluir links simbólicos quebrados em um determinado diretório recursivamente, use o sinalizador -dr com o comando padrão, onde d significa delete er significa recursive.

 symlinks -dr .

Usando o comando Find

O comando find vem pré-instalado em todos os sistemas Linux. Como o nome sugere, você pode pesquisar pastas e arquivos usando este comando. O comando find permite que você relate e exclua links virtuais mortos em seu sistema facilmente.

Para listar links simbólicos quebrados em seu diretório de trabalho atual, digite:

 find . -xtype l

Para localizar links quebrados presentes em qualquer outro diretório em seu sistema, basta substituir o . (ponto) caractere com o caminho do diretório. O seguinte comando irá procurar links quebrados no diretório / home .

 find /home -xtype l

Você também pode listar os links simbólicos quebrados que não são usados ​​pelo seu sistema.

 find . -xtype l ! -exec test -e {} ; -print

Para verificar para onde apontam esses links quebrados, use:

 find . -xtype l -exec ls -l {} +

Dependendo da quantidade de links simbólicos quebrados em seu sistema, você obterá uma saída semelhante a esta.

 lrwxrwxrwx 1 root root 19 Feb 21 11:53 /home/sharmadeepesh/another.txt -> /home/sharmadeepesh/text.txt

Além disso, você pode excluir links simbólicos quebrados de uma vez com o seguinte comando.

 sudo find . -xtype l -delete

Também existe uma maneira alternativa de excluir links inativos:

 sudo find . -xtype l ! -exec test -e {} ; -delete

Links simbólicos são importantes para um sistema Linux, pois facilitam o processo de resolução e gerenciamento de caminhos em seu computador. Mas se não for cuidado, os links simbólicos quebrados podem ocupar uma grande parte do armazenamento do sistema e você nem saberá sobre isso. Em tais situações, utilitários como links simbólicos e find entram em jogo.

Se você é um iniciante e deseja aprimorar seus conhecimentos em Linux, aprender novos comandos de vez em quando é a abordagem perfeita a seguir. Os usuários devem saber de qual comando precisam para resolver uma determinada situação de forma eficiente.