在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

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...