Capturando o nome do arquivo apontado por um link simbólico em uma variável

2

Digamos que eu tenha um link simbólico:

/path/to/foo->/path/to/some_file.txt

Digamos que eu tenha uma variável de shell x=/path/to/foo , como posso obter some_file.txt em uma variável de shell y ?

    
por Josh 13.11.2013 / 17:57

2 respostas

3

Em zsh ,

y=${x:A:t}

expandiria para a cauda do caminho absoluto de $x . Portanto, seria some_file.txt a menos que some_file.txt fosse um link simbólico para outra coisa.

Caso contrário, você pode usar zsh zstat builtin:

zmodload zsh/zstat
zstat -A y +link -- $x && y=$y:t
    
por 13.11.2013 / 21:10
3

Você pode usar readlink para obter o nome do caminho do arquivo de destino e, em seguida, basename para extrair o nome do arquivo:

y="$(basename -- "$(readlink -- "$x")")"
    
por 13.11.2013 / 18:07