シンボリックリンクがあります
~/link -> ~/a/really/long/path
私がするとき
cd ~/link
cd ..
私はそこまで連れて行きます。
~
しかし、私は行きたいです。
~/a/really/long
これを行う方法はありますか?
バッシュを使っています。
答え1
Bash(およびksh、zsh、ash)はディレクトリの変更を追跡し、常にシンボリックリンクにもcd /foo/bar && cd ..
戻ることができます。追跡された変更を無視し、「物理」ディレクトリ構造に従うオプションを渡します。/foo
bar
-P
cd
cd -P ..
bash 組み込みコマンドのドキュメントをhelp cd
参照してください。ディレクトリトレースが本当に気に入らない場合は、bash(zsh)でそれをオフにできます。man builtins
cd
set -P
set -o no_chase_link
答え2
readlink を使用してディレクトリの実際のパスを見つけて、以前のディレクトリに移動することもできます。
cd $(readlink -f .)/..
答え3
使用できるアプローチの1つは、シンボリックリンクの代わりにエイリアスを使用して〜/ a / really / long / pathに移動することです。これが私の使用方法であり、それからcdシンボリックリンクの代わりに単純な1/2 /et cetera文字コマンドを入力できます。