这是我的第一个问题,虽然我已经潜伏了一段时间.
题:
我想使用find来获取权限未设置为644(或其他权限值)的目录中的文件.有没有更短的方式来写这个或只是使用-perm和-or选项并列出除644之外的每个权限类型的唯一方法?
这是我希望加速的更大命令的一部分:
find /path/to/dir/ -type f -print0 | xargs -0 chmod 644
我希望只提供xargs需要更新的文件名才能加快速度.该目录有大约一百万个文件,但只有~10,000通常需要更新权限.我认为命令很慢,因为它仍然管道所有文件,无论如何.也许对更大的命令有更有效的方法.如果你知道一个,请告诉我.我仍然想知道这个问题的答案.顺便说一句,在将文件添加到目录之前,我无法更新权限.
解决方法
的!当条件为false时,operator返回true.
因此,当-perm 0644匹配具有rw-r – r–权限集的文件时,! -perm 0644匹配那些没有这些权限的那些.
您需要的命令是:
find /path/to/dir/ -type f ! -perm 0644 -print0 | xargs -0 chmod 644