Como alterar o caminho relativo ao symlink para o atual (em ranger ou terminal)

0

Qual é o caminho real? Considere a pasta A no sistema de arquivos e um B com links simbólicos. Considere atualmente em ranger (ou terminal) dentro de um subdiretório dentro de B como /home/B/sub1/sub2 que, na verdade, é /another_but_actual_path/A/sub1/sub2 . O que eu quero é ter uma ferramenta / comando / script que converta o caminho relativo para o caminho real. Quero dizer, enquanto pwd mostra /home/B/sub1/sub2 , quero acessar o caminho /another_but_actual_path/A/sub1/sub2 .

p.s. Eu tentei readlink , mas não poderia me dar o caminho real.

p.s. Eu não sei se o chamado caminho real tem um nome ou não.

    
por SdidS 22.11.2018 / 03:35

2 respostas

1

O pacote "coreutils" padrão do Linux contém um comando realpath .

Isso seguirá todos os links simbólicos para o caminho nomeado e retornará o caminho "real" associado a ele.

Então:

$ mkdir -p /tmp/foo/bar
$ ln -s /tmp/foo $HOME/foo
$ realpath $HOME/foo
/tmp/foo
$ realpath $HOME/foo/bar
/tmp/foo/bar
$ realpath $HOME/foo/bar/baz
/tmp/foo/bar/baz

Podemos ver que o link $HOME/foo está sendo substituído pelo caminho real de /tmp/foo .

A última entrada não precisa existir, mas todos os pontos intermediários devem.

$ realpath $HOME/foo/bar/baz/qux
realpath: '/home/sweh/foo/bar/baz/qux': No such file or directory

Isso porque não há diretório baz .

    
por 22.11.2018 / 03:45
1

No Ranger, você pode usar os comandos gl e gL . Digite g , então:

key          command
 L           cd -r %f
 l           cd -r .
    
por 27.11.2018 / 10:31