如何将当前目录及其所有子目录中的所有 *.java 文件设置为所有用户都具有读取权限?
我还想将当前目录和所有子目录中大小至少为 1 千字节的所有文件设置为管理员组。
答案1
选择:要设置当前目录中所有 .java 文件的读取权限,请使用以下命令:
chmod -R 444 *.java
将当前目录和所有子目录中大小至少为 1 KB 的所有文件设置为属于管理员组。
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 KB 的所有文件设置为属于管理员组。
在 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
第二个版本处理文件或目录名中的空格。
您可能还需要修复目录权限。
find . -type d -print0 | xargs -0 chmod o+rx
您可以避免更新已经正确的权限。查看 find 的手册页并查看有关权限的部分。
答案4
要设置当前目录中所有 .java 文件的读取权限,请使用此命令
chmod +r *.java