10.2 (14C92)
のような名前のディレクトリがあります。rmdir-rfを使用して削除します(コンテンツを含めるため)。 \
でスペースを渡す方法は知っていますが、結果は次のとおりです。
-bash: syntax error near unexpected token ('
だから、どういうわけか私はコマンドから括弧をエスケープしなければならないようです。これを正しく行うにはどうすればよいですか?
_\
_を使用してエスケープすることができますany単一文字、スペースですでに行っているように_(
_および_)
_が含まれています。機能しますが、エスケープする文字やスペースがたくさんある場合は面倒です。
より速い代替策は、エスケープするために単一引用符(_'
_)を使用することです文字列全体、つまり次のようなもの:
_rm -rf '10.2 (14C92)'
_
_'
_エスケープeverythingであることを覚えておいてください。たとえば、引用符内の変数展開が必要な場合は注意して使用してください。つまり、二重引用符を使用すると、スペースと括弧をエスケープすることもできます。
_rm -rf "10.2 (14C92)"
_
また、あなたの質問に基づいて、rmdir
を使用しようとします。 rmdir
は空のディレクトリでのみ機能し、_-r
_および/または_-f
_フラグはありません:
名前rmdir-空のディレクトリを削除する
構文rmdir [オプション] ...ディレクトリ...
説明ディレクトリを削除します空の場合。
_rm -rf
_を使用します。10.2 (14C92)
が本当に空の場合、単純な
_rmdir '10.2 (14C92)'
_
するだろう。
エスケープはbash
自体によって行われるため、すべてのコマンドで機能します。つまり、独自の解析ルールに基づいてコマンドに渡すwhatを決定するのはbash
であり、コマンドは引数afterbash
がそれらを解析しました。
あなたはすでに正しい道を進んでいます。括弧にはエスケープ文字\
も使用できます。
rm -r 10.2\ \(14C92\)
引用を使用することもできます:
rm -r '10.2 (14C92)'
rm -rf 10.2\ \(14C92\)/
-このフォルダー10.2\ \(14C92\)/
とそのすべてのコンテンツを再帰的に削除します。