Recriar Links Simbólicos Quebrados

Publicado por Buckminster em 28/01/2026

[ Hits: 54 ]

 


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

Resolver algumas mensagens de erro do SSH

Configurar teclado no Linux com Modmap

Instalar a última versão do PostgreSQL no Lunix mantendo atualizado

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

Instalar Google Chrome no Slackware 15

Leitura recomendada

Ubuntu - Configurar volume pelo Terminal

iptables - Diferenças entre -I e -A

Criando pastas em massa rapidamente no Linux

Programando seu Linux para desligar

Macete para busca reversa de comandos

  

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