bash rmdirで括弧を避けるには?

bash rmdirで括弧を避けるには?

10.2 (14C92)rmdir -rf(内容を含めるために)を使用して削除したいディレクトリと同じ名前のディレクトリがあります。スペースを渡す方法を知っていますが、\結果は次のとおりです。

-bash: syntax error near unexpected token ('

だからどういうわけか、コマンドから括弧を外す必要があるようです。これを正しく行うにはどうすればよいですか?

答え1

それを利用し\て脱出できます。どの単一の文字を入力し()既にスペースを使用していたかのように、その文字を含めます。操作中にエスケープする文字/スペースが多いと面倒なことがあります。

より速い選択肢は、以下を使用することです。アポストロフィ( ') 逃げる完全な文字列つまり、次のようになります。

rm -rf '10.2 (14C92)'

'脱出を覚えてくださいすべてそのため、必要に応じて慎重に使用してください(例、引用符内の変数の拡張)。つまり、二重引用符スペースと括弧をエスケープするのにも機能します。

rm -rf "10.2 (14C92)"

また、あなたの質問によると、これはでのみ動作しますrmdirrmdir空のディレクトリ-rそして/またはフラグはありません-f

NAME rmdir - 空のディレクトリを削除する

概要 rmdir [オプション]...ディレクトリ...

ディレクトリの削除について説明します。空の場合

を使用したいと思いますrm -rf。実際に空で
あれば10.2 (14C92)簡単です。

rmdir '10.2 (14C92)'

します。

エスケープはbashそれ自体で行われるため、すべてのコマンドに対して機能します。つまり、bash決定します。コマンドに渡されたコマンドは、独自の構文解析規則に従ってパラメーターに対して機能します。後ろに bash分析されました。

答え2

あなたはすでに正しい道を行っています。エスケープ文字を\角括弧として使用することもできます。

rm -r 10.2\ \(14C92\)

参照を使用することもできます。

rm -r '10.2 (14C92)'

答え3

rm -rf 10.2\ \(14C92\)/- このフォルダ10.2\ \(14C92\)/とすべてのコンテンツを繰り返し削除します。

関連情報