Recriar Links Simbólicos Quebrados

Publicado por Buckminster em 28/01/2026

[ Hits: 66 ]

 


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 teclado no Linux com Modmap

Configurar PHP/Apache para limitar o acesso externo de arquivos pela URL (barra de endereços)

Como resolver o erro no CUPS: Unable to get list of printer drivers

Bloquear P2P no IPtables

Instalar IRPF 2024 no Linux

Leitura recomendada

Transferência de Arquivos - Fish ou SCP

imsniff - Convertendo os logs em TXT para HTML

Adicionando e listando as regras criadas na lista de exceções do slackpkg usando egrep e sed

O comando SUPER

Como fazer Ubuntu reconhecer a placa de rede NVIDIA Corporation MCP61 Ethernet (rev a2)

  

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