私のディレクトリ設定は次のとおりです
~/code
~/code/src
~/code/build -> /path/to/somewhere/else
最後はシンボリックリンクです。
もし私がするなら
cd ~/code/build
ls ..
それからリストを得た/path/to/somewhere
が、その他の備考そして私の経験に照らして見ると、リストを見たいです~/code
。以前はその逆だったと誓います。
私はUbuntuでzshとbashを使っています。そのような設定はありますか、それともPOSIXのようなものに深く含まれていますか?
答え1
問題ではありませんls
。これがシンボリックリンクがどのように機能するかです。現在のディレクトリの親ディレクトリに移動しますが、..
シンボリックリンクを介して到達したかどうかは不明です。この動作を防ぐには、シェルが介入する必要があります。シェルの組み込み機能を呼び出すだけでなく、ディレクトリ全体のパスを覚えて欲しいものを見つけるための特別なcd
処理方法があります。しかし、組み込まれていません。期待する結果を得るには、シェルを渡す前に別のパスに変更する必要があります。オプションが役に立ちます。chdir
ls
..
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