CDPATH にスペースを含む bash ディレクトリ名

CDPATH にスペースを含む bash ディレクトリ名

非常に長いディレクトリ名を頻繁に入力しなくて済むように、ショートカットを設定しようとしています。 では~/.bash_profile、次のような操作を行っています。

export CDPATH=".:~:/This/Is/A/Really/Long/Path/That/Ends/With/My Name"

この変数を設定するときに、ディレクトリ名内のスペースをエスケープ/保持するにはどうすればよいですか?

私はさまざまな解決策を試しました (一重引用符と二重引用符の使用、バックスラッシュでのエスケープ ( も試しました'My\\\ Name')、引用符なし、およびこれらのオプションの組み合わせ)。

ありがとう。

答え1

export CDPATH=".:~:/This/Is/A/Really/Long/Path/That/Ends/With/My Name"

大丈夫だろう

私はもう試した

cd /tmp/
mkdir "aaa bbb"
mkdir "aaa bbb/a" "aaa bbb/b"
export CDPATH="/tmp/aaa bbb"

そして

cd a

問題なく動作します

また、ディレクトリを素早く変更したい場合は、エイリアスを作成することもできます。

alias longpath="cd '/This/Is/A/Really/Long/Path/That/Ends/With/My Name'"

しかし、そのディレクトリにコピーする問題は解決しません

cp longpath

動作しません。

おそらく正しく動作していないので、bash-completion をインストールして有効にする必要があります。これは _cd 関数を定義し、それを cd コマンドの補完として設定します。これにより、デフォルトの補完が上書きされ、$CDPATH が含まれます。

関連情報