Recriar Links Simbólicos Quebrados

Publicado por Buckminster em 28/01/2026

[ Hits: 325 ]

 


Recriar Links Simbólicos Quebrados



Sempre use caminhos absolutos ao criar links para evitar que eles quebrem se forem movidos. Sempre verifique com ls -l a fim de ver para onde o link aponta antes de apagá-lo.

Encontrar links quebrados no diretório atual:

$ sudo find . -xtype l

Remover todos os links quebrados no diretório atual:

$ sudo find . -xtype l -delete

Ou:

$ unlink "/caminho/para/o/link"

Recriar/Atualizar um Link Específico

Se você sabe que o arquivo original mudou de lugar pode forçar o link a apontar para o novo destino com a opção -f (force):

$ ln -sf /caminho/para/novo_original /caminho/para/link_quebrado

Listar links quebrados utilizando Symlinks:

$ sudo apt install symlinks (Ubuntu/Debian)

Ou:

$ sudo dnf install symlinks (Fedora).

$ symlinks -d /diretorio/alvo

EXEMPLO

Supondo que temos um link simbólico quebrado, por exemplo:

$ cd /etc/systemd/system/multi-user.target.wants usuario@usuario:/etc/systemd/system$ sudo find . -xtype l ./slurmctld.service

$ ls -l /etc/systemd/system/multi-user.target.wants/slurmctld.service

lrwxrwxrwx 1 root root 37 jan 25 20:07 /etc/systemd/system/multi-user.target.wants/slurmctld.service -> /etc/systemd/system/slurmctld.service

Porém, nenhum dos dois arquivos slurmctld.service existem:

$ cat /etc/systemd/system/multi-user.target.wants/slurmctld.service

cat: /etc/systemd/system/multi-user.target.wants/slurmctld.service: Arquivo ou diretório inexistente

$ cat /etc/systemd/system/slurmctld.service

cat: /etc/systemd/system/slurmctld.service: Arquivo ou diretório inexistente

Outro exemplo:

usuario@usuario:/etc/systemd/system$ sudo find . -xtype l ./dkms.service

$ ls -l /etc/systemd/system/multi-user.target.wants/dkms.service

lrwxrwxrwx 1 root root 36 ago 16 13:59 /etc/systemd/system/multi-user.target.wants/dkms.service -> /usr/lib/systemd/system/dkms.service

$ cat /etc/systemd/system/dkms.service

cat: /etc/systemd/system/dkms.service: Arquivo ou diretório inexistente

$ cat /usr/lib/systemd/system/dkms.service

cat: /usr/lib/systemd/system/dkms.service: Arquivo ou diretório inexistente

Provavelmente foi uma falha pontual durante a instalação.

No Debian, dependendo do ambiente gráfico, o link fica com o nome em vermelho com o fundo preto.

O Debian 13 usa o sistema UsrMerge por padrão, e durante a transição de arquivos de /lib para /usr/lib, links simbólicos antigos de instalações anteriores podem entrar em conflito com o novo esquema.

CORRIGINDO

Pesquisando pelo arquivo:

$ sudo ln -sf /lib/systemd/system/slurmctld.service /etc/systemd/system/slurmctld.service

Ou:

$ sudo find / | grep slurmctld.service

Ou:

$ dpkg -L slurmctld | grep service

Verificando se tem conteúdo:

$ cat /usr/lib/systemd/system/slurmctld.service

[Unit] Description=Slurm controller daemon After=network-online.target remote-fs.target munge.service sssd.service ...

Depois de ter certeza de que o arquivo existe podemos apagar os links:

$ sudo rm -rf /etc/systemd/system/slurmctld.service $ sudo rm -rf /etc/systemd/system/multi-user.target.wants/slurmctld.service

Systemd gerenciando o link (recriando automaticamente):

$ sudo systemctl reenable slurmctld

Ou:

$ ln -s /caminho/do/arquivo_original /caminho/do/link_simbolico

Conferindo:

$ ls -l /etc/systemd/system/multi-user.target.wants/slurmctld.service

lrwxrwxrwx 1 root root 41 jan 26 17:26 /etc/systemd/system/multi-user.target.wants/slurmctld.service -> /usr/lib/systemd/system/slurmctld.service

Agora vemos que está correto. O arquivo está em /usr/lib/systemd/system/slurmctld.service.

Podemos acessar o arquivo:

$ sudo vim /etc/systemd/system/multi-user.target.wants/slurmctld.service (recomendado)

Ou:

$ sudo vima /usr/lib/systemd/system/slurmctld.service

Para Arquivos:

$ ln -s /caminho/do/arquivo_original /caminho/do/link_simbolico

Para Diretórios (Pastas):

$ ln -s /caminho/da/pasta_original /caminho/do/link_da_pasta

Outras dicas deste autor

Instalar Java e Netbeans no Slackware 15

Dica básica para escrever um Artigo.

Escanear a rede com NBTSCAN para descobrir IPs e nomes de computadores

Resolvendo o problema de acentuação em Português no VIM

Converter os repositórios Debian para o novo formato com as chaves

Leitura recomendada

Executando um Comando ou Programa como Outro Usuário

Desligando o Linux com mensagem personalizada

Atalhos do KDE no Linux Mint 17.1

Executando comandos rápidos no Kurumin

Buscando palavras (strings) em arquivos dentro de diretório recursivamente

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts