Capturando el nombre del file apuntado por un enlace simbólico en una variable

Digamos que tengo un enlace simbólico:

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

Supongamos que tengo una variable de shell x=/path/to/foo , ¿cómo puedo get some_file.txt en una variable de shell y ?

En zsh ,

 y=${x:A:t} 

se expandiría a la queue de la ruta absoluta de $x . Por lo tanto, sería some_file.txt less que some_file.txt sea ​​un enlace simbólico a otra cosa.

De lo contrario, puede usar zsh zstat :

 zmodload zsh/zstat zstat -A y +link -- $x && y=$y:t 

Puede usar readlink para get la ruta de acceso del file de destino y luego basename para extraer su nombre de file:

 y="$(basename -- "$(readlink -- "$x")")"