微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在linux上只查找权限未设置为644的目录中的文件

这是我的第一个问题,虽然我已经潜伏了一段时间.

题:
我想使用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

原文地址:https://www.jb51.cc/linux/400351.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐