GNU/Linux >> Linux の 問題 >  >> Ubuntu

引用されたチルダ(‘〜’)にCdできないのはなぜですか?

私の最初のスクリプトを書いているので、これは基本的な質問だと確信していますが、誰かが私になぜできるのか説明してもらえますか?

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"
    

Ubuntu
  1. ルートレスのPodmanが私の画像をプルできないのはなぜですか?

  2. ホームディレクトリを表すために「〜」が選択されたのはなぜですか?

  3. Linux –カーネルがInitを実行できないのはなぜですか?

  1. ワイヤレス13.10に接続できませんか?

  2. Gnupgをアップグレードできませんか?

  3. 可聴のpingが聞こえないのはなぜですか?

  1. チルダ(〜)が二重引用符の内側に展開されないのはなぜですか?

  2. 通常のユーザーがファイルを「chown」できないのはなぜですか?

  3. ウェブサイトとcPanelにアクセスできないのはなぜですか?