Encontrando o arquivo original de um link simbólico

15

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?

    
por k-Rocker 12.11.2014 / 21:06

4 respostas

17

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
    
por 12.11.2014 / 21:07
2

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/»
    
por 12.11.2014 / 21:16
0

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
    
por 07.01.2017 / 23:05
0

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

    
por 17.01.2018 / 22:38

Tags