Bash
ls .. 不適用於符號連結
我的目錄設置有點像這樣
~/code ~/code/src ~/code/build -> /path/to/somewhere/else
最後一個是符號連結。
如果我這樣做
cd ~/code/build ls ..
然後我得到了 的列表
/path/to/somewhere
,但是根據其他評論和我自己的經驗,我希望看到列表~/code
- 我發誓這曾經反過來工作。我在 Ubuntu 上使用 zsh 和 bash。是否有此設置,或者它是否已深深根植於 POSIX 或其他東西中?
不是 的問題
ls
。這就是符號連結的工作方式。使..
您進入目前目錄的父目錄,該目錄不知道您是通過符號連結訪問它的。外殼必須進行干預以防止這種行為。對於 shell builtincd
,有一種特殊的處理方式,它不僅會呼叫chdir
而且會記住完整的目錄路徑並試圖找出你想要的東西。ls
但是,它不是內置的。如果你想得到你所期望的,shell 必須..
在傳遞它之前更改為不同的路徑。選項可以幫助您。ls``zsh``CHASE_DOTS
一般來說,目錄的符號連結是一項骯髒的業務。對於關鍵和半永久性應用程序,請使用
mount --bind
.