cpコマンドで使用するために左右の角かっこ[]をどのようにエスケープしますか?

cpコマンドで使用するために左右の角かっこ[]をどのようにエスケープしますか?

いくつかのディレクトリを見つけて、その内容を別のディレクトリにコピーするスクリプトがあります。

今問題は、見つかったいくつかのディレクトリの名前にかっこがなければならないことです。その名前は次のとおりです。

/directory/with/[brackets]

cpが次のようにコピーしようとすると、そのファイルやディレクトリが存在しないというメッセージが表示されます。

cp -r /directory/with/[brackets]/* /some/other/directory

これでうまくいくには角かっこをエスケープする必要があることがわかったので、簡単な解決策が必要です。

答え1

デフォルトでは2つのオプションがあります。

  1. 引用エスケープを使用してください:

    cp -r "/directory/with/[brackets]"/* /some/other/directory
    

    または

    cp -r '/directory/with/[brackets]'/* /some/other/directory
    
  2. バックスラッシュエスケープを使用します。

    cp -r /directory/with/\[brackets\]/* /some/other/directory
    

関連情報