Linux encontra e remove todos os links simbólicos relacionados a um diretório

Linux encontra e remove todos os links simbólicos relacionados a um diretório

Então, estou com uma situação em que criei muitos links simbólicos na tentativa de fazê-los funcionar, tentando todos os tipos de combinações.. agora tenho este erro:

ls: cannot access /etc/sv/me: Too many levels of symbolic links

Não há links simbólicos em /service/ ou /etc/sv/
A única maneira que encontro para resolver esse erro é remover todos os links simbólicos relacionados a /service/ ou /etc/sv/ mas nem vejo o links simbólicos?

Responder1

Você pode identificar links simbólicos cíclicos com alguns findtruques, tente isto:

find /path/to/search -type l -a ! \( -xtype b -o -xtype c -o -xtype d -o -xtype p -o -xtype f -o -xtype s -o -xtype l \) 2>/dev/null

Isso funciona filtrando links simbólicos e, em seguida, excluindo qualquer coisa em que o tipo de destino do link simbólico seja qualquer um dos tipos de inode possíveis. As únicas coisas que restam são aquelas em que findnão é possível determinar o tipo de alvo, o que só acontece para links simbólicos cíclicos (os quebrados correspondem -xtype l).

Responder2

Os links simbólicos não exibem "ação à distância" - ser o alvo de um link simbólico nunca afeta o alvo diretamente.

O erro que você está vendo indica que /etc, or /etc/sv, or /etc/sv/meé um link simbólico. Descubra qual é e corrija-o.

Responder3

Tente usar letras minúsculas -l(traço ell) em vez de maiúsculas -Lao fazer ls.

informação relacionada