ファイル名を引用するか、特殊文字をエスケープするように指示する答えは正しいです。
さらに、シェルがそれをサポートしている場合は、ファイル名補完を使用できます(ファイル名が特殊文字で始まらない限り)。例えば:
$ ls
hw yoyo ~
$ rm h<Tab>
、、、rm h
と入力Tabすると、シェルは、使用可能なファイル名を指定して、それを最長の一意のプレフィックスに展開します。これが現在のディレクトリで名前が。で始まる唯一のファイルである場合は、h
名前全体に展開され、正しくエスケープされます。打った後Tab、私は見る:
rm hw\ yoyo\ ~
押すだけEnterでファイルを削除できます。
または、名前を引用することから始めることができます:
$ rm 'h<Tab>
に展開:
$ rm 'hw yoyo ~'
必要に応じて、引用符とエスケープを組み合わせることもできます。
$ touch 'foo$bar'
$ rm "f<Tab>
に展開:
$ rm "foo\$bar"
シェルが引用ルールを覚えている場合は、自分で覚えているよりも速くて簡単です。すでに知っている場合でも同様です。
上記はbashに適用されます。他の最新のシェルでも機能する可能性があります。