ユーザー名にスペースとアポストロフィが含まれている場合のUbunth WSLでbashエイリアスを作成する方法

ユーザー名にスペースとアポストロフィが含まれている場合のUbunth WSLでbashエイリアスを作成する方法

Ubuntu WSLで次のエイリアスを作成しようとしています。

alias windocs='cd /mnt/c/Users/Firstname L'astname/Documents/'

残念ながら、私のユーザー名は名前城、スペースとアポストロフィが含まれています。

バックスラッシュを使ってみました。

alias windocs='cd /mnt/c/Users/Firstname\ L\'astname/Documents/'

しかし、bashはまだアポストロフィを文字列の終わりとして解釈し、次のエラーを引き起こします。

-bash: .bash_aliases: line 11: unexpected EOF while looking for matching `''
-bash: .bash_aliases: line 12: syntax error: unexpected end of file

また、ユーザー名を二重引用符で囲んでみました。

alias windocs='cd /mnt/c/Users/"Firstname L'astname"/Documents/'

同じエラーが発生します。

このエイリアスが機能するようにするにはどうすればよいですか?毎回ドキュメントフォルダまでCDを入れるのは痛いです。

ベストアンサー1

一重引用符で囲まれた文字列内の一重引用符はエスケープできませんが、幸いにもエイリアス定義の周囲に二重引用符を使用してから、ディレクトリ名の周りに二重引用符を使用できます(エスケープ処理)。

alias windocs="cd \"/mnt/c/Users/Firstname L'astname/Documents/\""

あるいは、このディレクトリをLinuxホームディレクトリにシンボリックリンクすることもできます。

ln -s "/mnt/c/Users/Firstname L'astname/Documents/" ~/docs

次に、単にcd docs(またはcd ~/docsホームディレクトリにない場合)、その場所に移動します。

おすすめ記事