ファイル名の場合、ファイル名にスペースを含めるには二重引用符またはバックスラッシュを使用する必要があることに注意してください。
「いいねmkdir "I like coffee"
」は同じです。mkdir I\ like\ coffee
これで、ファイル名に$を含めるにはバックスラッシュを使用する必要があります。
良いmkdir \$dollar
ファイル名を指定するときに使用するスペースとドル記号に加えて、他の文字は何ですか?
見つかりましたか?そして*はうまく動作するのに他のキャラクターたちはこんなのか気になりますね。
ベストアンサー1
Unixファイル名にはすべての文字(「/」または「\ 0」を除く)を含めることができるため、これは実際にはシェルの問題であり、エスケープする必要があるメタ文字のリストは、シェルとシェルの特定の構成によって異なります。 bashを使用しているようです。 ?または* glob式が引用符で囲まれていないと、他のシェルは失敗します。
$ mkdir test && cd test
$ ls
$ touch *foo
$ ls
*foo
$ exec zsh
% touch *bar
zsh: no matches found: *bar
% ls
*foo
%
bashは、これに関してzshのように動作するようにfailedglobシェルオプションを設定できます。通常、すべての内容を引用したり、Unixファイル名にメタ文字(またはスペース)を入れたりしないことをお勧めします。そのパスにより、rm -rf
呼び出しがディレクトリツリー全体を破損したり、ランダムに失敗したりする可能性があります(ファイルは引数-i
として読み込まれます)。 )またはシェルコードのセキュリティ問題。