Shell

擷取變數中符號連結指向的文件的名稱

  • November 13, 2013

假設我有一個符號連結:

/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")")"

引用自:https://unix.stackexchange.com/questions/101050