Recriar Links Simbólicos Quebrados

Publicado por Buckminster em 28/01/2026

[ Hits: 427 ]

 


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

Configurar Postgresql para conectar com senha criptografada

Desempacotar pacote debian (.deb), alterá-lo e reempacotar

Wireless no Debian Squeeze com WPA2

Problemas de chaves (/usr/share/keyrings) no Debian

Instalar OnlyOffice no Linux

Leitura recomendada

Como aumentar minha resolução ultrapassando o máximo do monitor

Coletânea de atalhos no bash

Shutdown liberado para usuários comuns (Slackware)

Comandos para a distribuição Solus OS - Gerenciamento de Pacotes

Sudo não funciona com comandos gráficos no Slackware 15.0

  

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