find . a* -exec chmod o+r {} \;
find . *d -exec chmod o+x {} \;
o+r
「a」で始まるすべてのファイルと「d」で終わるすべてのファイルを提供したいのですが、o+x
この行はディレクトリの下のすべてのファイルに影響を与えるようです。
答え1
シェルが拡張されないように、a*とd*を引用符で囲み、-nameキーワードを追加します。たとえば、ディレクトリ以外のファイルのみを検索するには、-type fを追加します。
find . -name 'a*' -type f -exec chmod o+r {} \;
find . -name '*d' -type f -exec chmod o+x {} \;
サブディレクトリではなく現在のディレクトリのみを変更するには、-maxlengthオプションを追加します。
find . -maxdepth 1 -name 'a*' -type f -exec chmod o+r {} \;
find . -maxdepth 1 -name '*d' -type f -exec chmod o+x {} \;