
現在のディレクトリとそのすべてのサブディレクトリ内のすべての *.java ファイルに、すべてのユーザーに対する読み取り権限を設定するにはどうすればよいでしょうか?
また、現在のディレクトリとすべてのサブディレクトリにある、サイズが少なくとも 1 キロバイトのすべてのファイルに管理者のグループを設定する必要があります。
答え1
代替:現在のディレクトリ内のすべての .java ファイルの読み取り権限を設定するには、次のコマンドを使用します。
chmod -R 444 *.java
現在のディレクトリとすべてのサブディレクトリにある、サイズが 1 キロバイト以上のすべてのファイルに管理者のグループを設定します。
find /yourdirectorypath -size +1k -exec chgrp admin {} \;
注記:「-R」は再帰的であることを示し、サブディレクトリもカバーします。
答え2
現在のディレクトリとそのすべてのサブディレクトリ内のすべての *.java ファイルに、すべてのユーザーに対する読み取り権限を設定するにはどうすればよいでしょうか?
bash ≥4.0 および zsh の場合:
chmod a+r ./**/*.java
任意の POSIX 準拠システム (つまり、アンティークではない Unix バリアントなど) の場合:
find . -name '*.java' -exec chmod a+r {} +
現在のディレクトリとすべてのサブディレクトリにある、サイズが 1 キロバイト以上のすべてのファイルに、管理者のグループを設定します。
zshの場合:
chgrp admin ./**/*(.L+1023)
POSIX 準拠のシステムの場合:
find . -type f -size +1023c -exec chgrp admin {} +
答え3
findとxargsを使用する
find . -name \*.java | xargs chmod o+r
または
find . -name \*.java -print0 | xargs -0 chmod o+r
2 番目のバージョンは、ファイル名またはディレクトリ名内のスペースを処理します。
ディレクトリの権限も修正する必要があるかもしれません。
find . -type d -print0 | xargs -0 chmod o+rx
すでに正しい権限の更新を避けることができます。man ページで権限に関するセクションを見つけて確認してください。
答え4
現在のディレクトリ内のすべての.javaファイルの読み取り権限を設定するには、次のコマンドを使用します。
chmod +r *.java