パス(たとえば、私のフォルダ)にディレクトリを追加して、任意のディレクトリから入力するDownloads
たびに。cd Downloads
~/Downloads
答え1
CDPATH
使用しているシェルがCDPATH
環境変数をサポートしている場合は、以下を設定できます。
CDPATH=.:$HOME
シェル起動スクリプトから。その後、cd <directory>
コマンドを使用すると、そのコマンドが<directory>
現在のディレクトリのサブディレクトリとして存在しないたびに、コマンドはそれをホームディレクトリのサブディレクトリとして検索します(つまり、~/<directory>
一致するものが見つかるとそのディレクトリに移動します)。
ディレクトリ名はパス検索を開始./
または../
抑制し、もちろん絶対パス名も同じですが、一部のシェルでのみこれをマニュアルに文書化します。
cd ./Downloads
パスは検索されません。
CDPATH
他のシェルには若干異なるルールがあります。
.
Almquist、Korn、およびBourne Againシェルは変数が存在する場合は明示的に検索しないため、現在のディレクトリ検索の期待される動作を維持するには、変数に前の項目を明示的CDPATH
に含める必要があります。.
- 対照的に、Zシェルは
.
最初に検索し、〜しない限りCDPATH
.
項目を明示的に含めるか、POSIX_CD
シェルオプションを設定して使用できます。CDPATH=$HOME
また、現在のディレクトリを検索する動作が発生します。 (パスを検索するタイミングを制御するこの方法は、.
4DOS / NDOSなどのコマンドソルバーを使用してMS / PC / DR-DOSユーザーが見つけることができる古いアイデアです。痛みを伴うほどおなじみ.) - 渡辺シェル検索
.
最後、にリストされているディレクトリを確認した後CDPATH
。
私は意図的にCDPATH変数をエクスポートせずにその効果を対話型シェルに制限したいと思います。複雑なスクリプトを実行するときにCDPATHを有効にすると、予期しない副作用が発生する可能性があります。
cdpath
この目的のために、Zシェルでは代わりにcdpath
変数を使用できますCDPATH
。 Cシェルにも変数がありますが、cdpath
まったくありません。CDPATH
cdpath
誤ってエクスポートするのが難しい配列型シェル変数。配列なので、コロンで区切られた形式よりも操作が簡単ですCDPATH
。
CシェルとTENEX Cシェル
C シェルでは、以下を実行できます。
cdpath=(~) 設定
.
Cシェルはcdpath
シェル変数を表示する前に自動的にシェル変数を検索するため、これを含める必要はありません。既存のパスに追加するには、次を使用します。cdpath=($cdpath:q ~) 設定これにより、
:q
ファイル名拡張やコマンド置換の影響を受けないように、割り当ての変数拡張が引用されます。
Cシェルは.
最初に検索してからcdpath
。
Zシェル
Z シェルでは、以下を実行できます。
CDパス=(~)以下のルールが
CDPATH
Zシェルに適用されます。これは検索パスを指定するのに便利な構文です。既存のパスに追加するには、次を使用します。CDパス+=(~)Zシェルは
:q
Cシェルに似ていますが、この構文ではZシェルは必要ありません。
また、Zシェルは自動的cdpath
にCDPATH
。
答え2
Downloads
特定のディレクトリにアクセスする場合は、~/Downloads
そのディレクトリにシンボリックリンクを配置できます。
ln -s ~/Downloads .
これで、CD のダウンロードがどこからでも ~/Downloads に移動できるようにするには、cd
その機能を使用して上書きできます。たとえば、次のようなものがあります.bashrc
。
cd() { if [ "$1" = Downloads ]; then builtin cd ~/Downloads; else builtin cd "$1"; fi; }
ただし、標準コマンドの意味を変更することはお勧めできません。これは多くの混乱を引き起こす可能性があります。本当に短いものが必要な場合は、別名を作成するか、cdDownloads
単にdownloads
そこに移動することもできます。
alias downloads="cd ~/Downloads"