Como localizar e listar todos os links simbólicos criados para um determinado arquivo?

51

Eu criei muitos links simbólicos em vários caminhos para um determinado arquivo ou diretório. Eu quero toda a lista de caminhos de links simbólicos criados (localização).

Exemplo:

Eu criei links simbólicos para o diretório ~/Pictures em vários diretórios. Como faço para listar todos os links simbólicos para esse diretório ~/Pictures ?

Isso é possível? Se sim, então como?

    
por Avinash Raj 04.03.2014 / 10:06

4 respostas

38

Aqui está um exemplo:

find -L /dir/to/start -xtype l -samefile ~/Pictures

ou talvez melhor:

find -L /dir/to/start -xtype l -samefile ~/Pictures 2>/dev/null

para eliminar alguns erros como Permission denied , Too many levels of symbolic links ou File system loop detected , que find os lança quando não tem as permissões certas ou outras situações.

  • -L - Siga os links simbólicos.

  • -xtype l - O arquivo é um link simbólico

  • -samefile name - Arquivo refere-se ao mesmo inode que name . Quando -L está em vigor, isso pode incluir links simbólicos.

por Radu Rădeanu 04.03.2014 / 10:13
6

Muito simples:

find / -lname /path/to/original/dir

Use a opção -lname

  

OBSERVAÇÃO : Lembre-se de que os links simbólicos podem estar em qualquer lugar, incluindo   um sistema remoto (se você estiver compartilhando arquivos), talvez não seja possível   localize todos eles.

    
por Abdennour TOUMI 25.06.2014 / 16:23
3

Tente isto:

ls -i ~/

277566 Pictures

find . -follow -inum 277566 (encontre diretórios com o mesmo número inode )

Ele exibirá todos os seus caminhos de links simbólicos.

    
por nux 04.03.2014 / 10:21
0

Eu gosto mais dessa frase:

find . -maxdepth 1 -type l -exec readlink -f '{}' \;

refs:

link

link

    
por user216125 13.04.2017 / 00:25