我的目錄設定有點像這樣
~/code
~/code/src
~/code/build -> /path/to/somewhere/else
最後一個是符號連結。
如果我這樣做
cd ~/code/build
ls ..
然後我得到 的列表/path/to/somewhere
,但是來自其他備註和我自己的經驗,我希望看到清單~/code
- 我發誓這曾經是相反的。
我在 Ubuntu 上使用 zsh 和 bash。是否有這樣的設定或它是否深深地融入到 POSIX 之類的東西中?
答案1
不是 的問題ls
。這就是符號連結的工作原理。它..
讓您進入當前目錄的父目錄,該目錄不知道您透過符號連結到達它。 shell 必須介入以防止這種行為。對於 shell 內建命令cd
,有特殊的處理,它不僅會調用chdir
,還會記住完整的目錄路徑並嘗試找出您想要的內容。ls
但是,它不是內建的。如果你想得到你所期望的結果,shell 必須..
在傳遞它之前更改為不同的路徑。選項可以幫助您。ls
zsh
CHASE_DOTS
一般來說,目錄的符號連結是一件骯髒的事情。對於關鍵和半永久性應用,請使用mount --bind
.
答案2
既然你用我的標籤標記了你的問題,zsh
我假設我們正在談論這個外殼。
您很可能已經設定了(直接或間接使用某些外部腳本,例如oh-my-zsh
)變數CHASE_LINKS
和/或CHASE_DOTS
。若要確認運行setopt | grep -i chase
並查看它們是否已列出。如果是,只需取消設定即可:
unsetopt CHASE_DOTS
unsetopt CHASE_LINKS