Como encontrar todos os links simbólicos para um determinado arquivo / diretório?

7

Como você pode encontrar todos os links simbólicos para um determinado arquivo / diretório?

Esta pergunta anterior aplica-se apenas a hardlinks (se eu ler corretamente).

    
por warren 20.01.2010 / 21:16

1 resposta

5

Use find /dir -lname /link/target . Ele pesquisa o conteúdo do link com o padrão de shell; por exemplo. você pode usar * e? curingas na especificação do alvo.

Uma desvantagem deste método é que ele pesquisa conteúdos de links, não seus caminhos expandidos , então se você precisar encontrar links relativos para caminhos absolutos (se ex. são mais de um arquivo com o mesmo nome) você precisa de um script mais complicado.

Além disso, você pode usar outro apporoach: find -L /dir -samefile /link/target . Isso faz com que find desrefere os links simbólicos e depois de verificar o caminho não referenciado que é expandido pelo SO para ser o mesmo fornecido, para que os links relativos e absolutos sejam manipulados pelo Linux. Isso resolve o problema do método anterior.

    
por 20.01.2010 / 21:27