私の最初のスクリプトを書いているので、これは基本的な質問だと確信していますが、誰かが私になぜできるのか説明してもらえますか?
cd ~
cd bin
cd ~/bin
cd 'bin'
しかし、そうではありません
cd '~'
cd '~/bin'
cd
する必要があります ディレクトリ名の1つにスペースが含まれるディレクトリパスに移動するため、引用符が必要です(WindowsのProgram Files
ワインの下で)。 2つのcd
で回避できます コマンドがありますが、なぜ~
を入れられないのですか 引用符で囲みますか?
cd '~'
と入力すると (またはcd "~"
)取得:
bash: cd: ~: No such file or directory
承認された回答:
@karelが彼の答えで述べたように、~
は特殊文字であり、Bashによって現在のユーザーのホームディレクトリに展開されます。 「TildeExpansion」に関するBashのマニュアルを参照するか、manページ(man bash
)で「TildeExpansion」という見出しを検索してください。 。
~
に関するあらゆる種類の引用 このチルダの膨張を防ぎます。
それをcd
に使用する方法についての質問に答える 名前にスペースが含まれるディレクトリには、いくつかの選択肢があります。
-
引用符を省略し、代わりにバックスラッシュでスペースをエスケープします:
cd ~/foo/spaces are cool/bar
-
パスの残りの部分を引用しますが、チルダと最初のスラッシュの周りは省略します:
cd ~/"foo/spaces are cool/bar"
ご覧のとおり、Bashで引用符で囲まれた文字列と引用符で囲まれていない文字列は、間にスペースを入れずに並べて書き込むだけで連結できます。
-
環境変数
$HOME
を使用します チルダの代わりに、「二重引用符」(「一重引用符」ではない)内で展開されます:cd "$HOME/foo/spaces are cool/bar"
Virtualboxにインターネット接続がありません(ゲストとしてWindows 7、ホストとしてUbuntu 13.04)?
Ubuntu:Securebootを有効にして「安全でないモードで起動する」?