Eu havia criado muitos links simbólicos em vários caminhos para um arquivo ou diretório específico. Quero a lista inteira de caminhos de links simbólicos criados (local).
Exemplo:
Criei links simbólicos para o ~/Pictures
diretório em muitos diretórios. Como listar todos os links simbólicos para esse ~/Pictures
diretório?
Isso é possível? Se sim, então como?
command-line
symbolic-link
Avinash Raj
fonte
fonte
Respostas:
Aqui está um exemplo:
ou talvez melhor:
para se livrar de alguns erros como
Permission denied
,Too many levels of symbolic links
ouFile system loop detected
o quefind
eles joga quando não tem as permissões adequadas ou outras situações.-L
- Siga links simbólicos.-xtype l
- O arquivo é um link simbólico-samefile name
- Arquivo refere-se ao mesmo inode quename
. Quando-L
está em vigor, isso pode incluir links simbólicos.Notas:
-xtype l
, não o dígito 1.-xtype
é-type
.fonte
Muito simples, use a opção
-lname
:De
man find
:Nota : Lembre-se de que os links simbólicos podem estar em qualquer lugar, o que inclui um sistema remoto (se você estiver compartilhando arquivos); portanto, talvez não seja possível localizá-los todos.
fonte
../dir
, então não vai encontrar o absoluto/path/to/original/dir
em vez disso você pode usar um padrão e eliminar falsos positivos-lname \*dir
Tente o seguinte:
find . -follow -inum 277566
(encontre diretórios com o mesmo número de inode )Ele exibirá todos os seus caminhos de links simbólicos.
fonte
Eu gosto mais desta linha:
find . -maxdepth 1 -type l -exec readlink -f '{}' \;
refs:
https://unix.stackexchange.com/questions/22128/how-to-get-full-path-of-original-file-of-a-soft-symbolic-link
https://unix.stackexchange.com/questions/21984/list-symlinks-in-current-directory
fonte