![cpコマンドで使用するために左右の角かっこ[]をどのようにエスケープしますか?](https://linux33.com/image/225571/cp%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E5%B7%A6%E5%8F%B3%E3%81%AE%E8%A7%92%E3%81%8B%E3%81%A3%E3%81%93%5B%5D%E3%82%92%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F.png)
いくつかのディレクトリを見つけて、その内容を別のディレクトリにコピーするスクリプトがあります。
今問題は、見つかったいくつかのディレクトリの名前にかっこがなければならないことです。その名前は次のとおりです。
/directory/with/[brackets]
cpが次のようにコピーしようとすると、そのファイルやディレクトリが存在しないというメッセージが表示されます。
cp -r /directory/with/[brackets]/* /some/other/directory
これでうまくいくには角かっこをエスケープする必要があることがわかったので、簡単な解決策が必要です。
答え1
デフォルトでは2つのオプションがあります。
引用エスケープを使用してください:
cp -r "/directory/with/[brackets]"/* /some/other/directory
または
cp -r '/directory/with/[brackets]'/* /some/other/directory
バックスラッシュエスケープを使用します。
cp -r /directory/with/\[brackets\]/* /some/other/directory