Recriar Links Simbólicos Quebrados

Publicado por Buckminster em 28/01/2026

[ Hits: 68 ]

 


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

Malware no Linux?

Leitor de Teclas em Javascript e PHP

Usar o WoeUSB-ng no Debian para criar um pendrive bootável

Instalar IRPF 2024 no Linux

Configurar teclado no Linux com Modmap

Leitura recomendada

Programa travou e não responde? Use a função xkill

bind - Criando atalhos no teclado (Ubuntu)

Proteção de tela em modo Shell

Principais comandos do Linux

Instale o kernel 3.10 no elementary OS

  

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