
非常に長いディレクトリ名を頻繁に入力しなくて済むように、ショートカットを設定しようとしています。 では~/.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 が含まれます。