![中かっこを含む「検索」コマンドが何を意味するのかを理解するのに役立つ人はいますか? [コピー]](https://linux33.com/image/155705/%E4%B8%AD%E3%81%8B%E3%81%A3%E3%81%93%E3%82%92%E5%90%AB%E3%82%80%E3%80%8C%E6%A4%9C%E7%B4%A2%E3%80%8D%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%8C%E4%BD%95%E3%82%92%E6%84%8F%E5%91%B3%E3%81%99%E3%82%8B%E3%81%AE%E3%81%8B%E3%82%92%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AB%E5%BD%B9%E7%AB%8B%E3%81%A4%E4%BA%BA%E3%81%AF%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
古いメモが見つかりましたが、誰かが次のコマンドを実行していくつかのファイル権限を設定するように提案しました。
find /perl/lib/ -type f -exec chmod o+r \{\} \;
\{\}
その声明が何をしているのか知っていますか?それは必要ですか?私はいくつかのテストファイルで何度も実行をテストしましたが、バックスラッシュを削除するのと同じことをしたようです。
find /u01/app/oracle/product/12102/perl/lib/ -type f -exec chmod o+r {} \;
あなたが提供できるどんな助けにも感謝します。
答え1
バックスラッシュはエスケープ文字です(シェルに次の文字を文字通り解釈するように指示します)。あなたが見つけたように、それは不要です。シェルは同じ方法で両方のコマンドを拡張します。
中かっこは予約語であるか、単に安全のためのものなので、必要だと思うかもしれません。ただし、中括弧内に有効なパターンがない場合、中括弧拡張は発生せず、中括弧の間にスペースがあるコマンドのリストがない場合、コマンドのグループ化は試行されません。
find
/コマンドのコンテキストでは、中括弧自体はexec
返された各ファイル名に置き換えられます。