私の許可コマンドは正しく機能しません。

私の許可コマンドは正しく機能しません。
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 {} \;

おすすめ記事