Directory
如何使用指向目錄的符號連結
我正在嘗試使用符號連結,但遇到了幾個問題。第一個是在遵循指向目錄的符號連結之後如何顯示實際的工作目錄而不是相對於符號連結的目錄(
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'
以類似的方式,您可以擺脫 bash
pwd
內置:alias pwd=`/bin/pwd`
你想要的是
pwd -P
.從
man pwd
CentOS 6 開始:-L, --logical use PWD from environment, even if it contains symlinks -P, --physical avoid all symlinks
或者,從 BSD
pwd
手冊頁和稍微更有幫助的措辭:-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 ..
根據需要使用。