回答:
&
(または他のほとんどすべてのキャラクターについては、2つの単純な可能性があります。
' -3ab_&_-3dc.img'
-3ab_\&_-3dc.img
2つの例外があります。
foo'bar\qux
:cd 'foo'\''bar\qux'
。あなたはそれをそのように思い出すことができます:一重引用符の中で、一重引用符を'\''
取得します。二重引用符も使用できますが、一部の文字の前にバックスラッシュを置く必要があります。単一引用符はより簡単です。
ここには、ディレクトリの名前がダッシュで始まるという、もう1つの問題があります。その文字は、cd
コマンドが(ほとんどすべてのコマンドと同様に)オプションに続くことを伝えます。ダッシュはシェルにとって特別なものではなく、コマンドにとって特別なものなので、引用符はシェルに影響を与えません。オプションとして解釈せずに、ダッシュで始まる引数をコマンドに渡す方法は2つあります。
./
、前に追加しても同じファイルが指定されます。--
前に引数を置きます。これは、オプションの検索を停止するようにコマンドに指示します。そこで、このサブディレクトリに変更する方法をいくつか紹介します。
cd -- '-3ab_&_-3dc.img'
cd -- -3ab_\&_-3dc.img
cd ./-3ab_\&_-3dc.img
cd './-3ab_&_-3dc.img'
アンパサンドはエスケープする必要がありますが-
、アンパサンドではなく先頭のに問題がある可能性があります。主要な-
cdは、オプションを渡していると考えさせました。あなたはこれを使ってこれを回避することができます./
:
cd './-3ab_&_-3dc.img'
&
は間違いなく問題です。については-
、シェルによって異なります。Zshはcd
、で始まるディレクトリに移動できて非常に満足してい-
ます。しかし、bashはそうではありません。