回答:
&(または他のほとんどすべてのキャラクターについては、2つの単純な可能性があります。
' -3ab_&_-3dc.img'-3ab_\&_-3dc.img2つの例外があります。
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はそうではありません。