Tente isto:
readlink -f /path/file
(último alvo do seu symlink, se houver mais de um nível)
Se você quiser apenas o próximo nível de link simbólico, use:
readlink /path/file
Então, digamos que eu tenha um link simbólico de um arquivo no meu diretório home para outro arquivo em uma partição diferente. Como eu encontraria o local de destino do arquivo vinculado? Por isso, digamos, digamos que eu tenha file2
em /home/user/
; mas é um link simbólico para outro file1
. Como eu encontraria file1
sem manualmente ter que passar por cada partição / diretório para encontrar o arquivo?
1.
ls -l bin
produzir
lrwxrwxrwx 1 az az 14 Ноя 12 22:13 bin -> ../Gdrive/bin/
2.
file bin
produzir
bin: symbolic link to '../Gdrive/bin/'
3.
stat bin
produzir
File: «bin» -> «../Gdrive/bin/»
Expandindo em Costas
Suponha que você tenha
ln -s test.txt sym_link_1.txt
ls -l sym_link_1.txt
lrwxrwxrwx. 1 a1 g1 8 Jan 7 16:59 sym_link_1.txt -> test.txt
Em um script que você pode fazer (use backticks)
ln -s 'readlink sym_link_1.txt' sym_link_2.txt
Então você tem
ls -l sym_link_*.txt
lrwxrwxrwx. 1 a1 g1 8 Jan 7 16:59 sym_link_1.txt -> test.txt
lrwxrwxrwx. 1 a1 g1 8 Jan 7 17:01 sym_link_2.txt -> test.txt
A maneira mais simples: cd
para onde o link simbólico está localizado e ls -l
para listar os detalhes dos arquivos.
A parte à direita de ->
após o link simbólico é o destino para o qual está apontando.
Ex:
lrwxrwxrwx 1 userName groupName 22 Jan 17 13:29 Link to temp.txt -> /home/user/temp.txt
Aqui temos "Link para temp.txt" que aponta para ( ->
) "/home/user/temp.txt".
Mas, como @Gilles Quenot aponta , você também pode fazer apenas readlink -f /path/to/symbolic_link
Tags symlink