r
我收到一个提示,要求我删除目录中所有者 (u) 无法、w
、 、 、 在一个命令中删除的所有文件x
。
我尝试了这个命令:
find data -type f ! -perm -u=rwx -exec rm -f {} \;
...但我认为它删除了太多文件。
r
我收到一个提示,要求我删除目录中所有者 (u) 无法、w
、 、 、 在一个命令中删除的所有文件x
。
我尝试了这个命令:
find data -type f ! -perm -u=rwx -exec rm -f {} \;
...但我认为它删除了太多文件。
我想你想要这个,假设你
find
专门使用 GNU:请注意,我添加了一个
echo
用于测试。如果打印的文件符合您的期望,请将其取出。:)
如果您使用的是 Linux 系统,则可能有 GNU
find
,并且可以按照其他答案中的示例操作,使用find data -type f ! -perm /u=rwx -delete
.如果您使用的不是 Linux 系统,则很可能使用的是 BSD 系统(例如 macOS 或开源 BSD 之一),该系统不理解谓词参数的
find
非标准语法。在这种情况下,您可以在每个文件上使用来挑选出符号用户权限并根据字符串测试它们(这意味着用户对该文件没有任何权限):/u
-perm
stat
---
这里假设的是 BSD
stat
,而不是 Linuxstat
。您可以更改
-print
为-delete
实际删除文件。一个稍微高效的变体,不会为每个文件启动一个新的 shell:
删除
echo
以删除文件。