Shell
擷取變數中符號連結指向的文件的名稱
假設我有一個符號連結:
/path/to/foo->/path/to/some_file.txt
假設我有一個 shell 變數
x=/path/to/foo
,我怎樣才能進入some_file.txt
一個 shell 變數y
?
在
zsh
,y=${x:A:t}
將擴展到 的絕對路徑的尾部
$x
。因此,some_file.txt
除非some_file.txt
它本身是指向其他東西的符號連結。否則,您可以使用
zsh
zstat
內置:zmodload zsh/zstat zstat -A y +link -- $x && y=$y:t
您可以使用
readlink
獲取目標文件的路徑名,然後basename
提取其文件名:y="$(basename -- "$(readlink -- "$x")")"