使用これ.bashrc
回答、一般的に使用されているディレクトリに簡単に変更できるように、ファイルへのシンボリックリンクを作成しました。
例えば
ln -s ~/a/b/c/d/development dev
home
入力により、自分のディレクトリからディレクトリにディレクトリを変更できます。私のディレクトリから入ることもできますが、これも機能します。development
cd dev
ls dev
home
しかし、これらのコマンドはただ私のディレクトリで動作しますhome
。他の場所から入力するとエラーメッセージが表示されますNo such file or directory
。
私が入力cd ~/dev
したりls ~/dev
動作したら。
~/
誰かがこれが起こる理由とそれを修正して、ホームディレクトリにないときにパスに含める必要がないことを説明できますか?
ベストアンサー1
Bashをシェルとして使用しているので、CDPATH
シェル変数を使用できます。これバッシュマニュアルそれを次のように描く
検索パス:CDPATHの各ディレクトリ名内のディレクトリを検索し、CDPATHでコロン( ':')で区切られた代替ディレクトリ名を使用します。
次の行を次の行に追加できます.bashrc
。
CDPATH=".:$HOME"
後で入力すると、cd dev
現在の作業ディレクトリから次の名前のサブディレクトリが検索されますdev
。
- そのようなディレクトリが存在する場合は、そのディレクトリに変更されます(
cd
組み込みコマンドが通常行うように)。 - そうでない場合は、ホームディレクトリ(
~
)を検索し、シンボリックリンク(ディレクトリへのリンクであることを認識)を見つけて、宛先ディレクトリ(指す~/dev
)に変更します。
ホームディレクトリ内のディレクトリの優先順位を指定するには、$HOME
まず()内にリストするだけですが、壊れるため、これを行わないことをお勧めします。CDPATH
"$HOME:."
最小の驚きの原理: 結果の振る舞いが標準から外れすぎます。