Directory

如何使用指向目錄的符號連結

  • May 3, 2016

我正在嘗試使用符號連結,但遇到了幾個問題。第一個是在遵循指向目錄的符號連結之後如何顯示實際的工作目錄而不是相對於符號連結的目錄(pwd例如,當使用 時)。第二個是如何“備份”到文件系統中的實際目錄中,而不是備份到符號連結中。

man pwd我的 Ubuntu 上:

你的 shell 可能有自己的 pwd 版本

我用bash. 簡單pwd的命令為我提供了關於符號連結的路徑;但/bin/pwd返回實際路徑。該cd命令也是一個 bash 內置命令。

換句話說:這是特定於外殼的。

編輯: thrig 的評論(見下文)似乎是我在這一行下面寫的所有內容的更好選擇。

要“備份”到實際目錄中,請嘗試cd "$(/bin/pwd)/.."cd "$(/bin/pwd)"; cd ... 第二種形式可能會被調整以建立一個別名cd,我認為:

alias cd='cd "$(/bin/pwd)"; cd'

以類似的方式,您可以擺脫 bashpwd內置:

alias pwd=`/bin/pwd`

你想要的是pwd -P.

man pwdCentOS 6 開始:

   -L, --logical
          use PWD from environment, even if it contains symlinks

   -P, --physical
          avoid all symlinks

或者,從 BSDpwd手冊頁和稍微更有幫助的措辭:

 -L      Display the logical current working directory.

 -P      Display the physical current working directory (all symbolic
         links resolved).

我不是 100% 確定您所說的“備份”是什麼意思,但假設您的意思是“將目錄更改為目前目錄的父目錄”,您可以使用:

cd "$(dirname "$(pwd -P)")"

這相當於cd ..您目前的工作路徑不包含符號連結。

或者,您可以使用cd "$(pwd -P)"轉到目前邏輯目錄的物理路徑,然後cd ..根據需要使用。

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