测试目录中的所有文件是否具有正确的权限

时间:2017-08-18 06:03:13

标签: linux bash file permissions

如何测试目录中的所有文件是否具有正确的权限?使用命令stat --format %a /home/user/dir/*我可以获得多行字符串中目录中所有文件的权限。假设我想检查所有文件是否都具有权限0700。

我将if [ "$(stat --format %a ~/file)" != 600 ]; then chmod 0600 ~/file; fi用于单个文件,但如何测试多个文件?

2 个答案:

答案 0 :(得分:1)

你可以尝试一下吗?

for i in ~/your_dir/*/*
do
 if [ "$(stat --format %a $i)" != 600 ]; then
  chmod 0600 $i
 fi
done

答案 1 :(得分:1)

查找将为您完成所有这些工作

find <directory> ! -perm -664 -exec chmod 0600 '{}' \;