我们使用以下 hp-ux 配置:
HP-UX dxp10hxw B.11.23 U 9000/800 1446354274 unlimited-user license
并尝试运行一个简单的查找命令,如下所示:
find . ! -type l -perm -0020 -exec ls -l {} \;
这应该会生成当前目录中所有文件/文件夹的列表,这些文件/文件夹具有组可写权限。但是,它还列出了没有组可写权限的文件
我们做了一些研究并尝试了上述命令的变体,例如:
find . ! -type l -perm -g+w -exec ls -l {} \;
find . ! -type l -perm -g=w -exec ls -l {} \;
但似乎没有任何作用。我们尝试过谷歌搜索,但 hp-ux 的谷歌搜索结果并不多。在 hp-ux 论坛上,我们能找到的最接近的是:http://community.hpe.com/t5/System-Administration/commnd-to-find-All-world-writable-files-in-hpux-11-0-system/td-p/3260440但那里提到的建议也没有帮助。
我们确实尝试一次查找一个文件。例如,如果有一个文件 temp.txt 的权限为 711,并且当我们运行上述命令时,它会出现在结果中。然后我们修改命令以仅搜索该文件而不是当前目录中的所有文件和以下命令
find ./temp.txt ! -type l -perm -g+w -exec ls -l {} \;
没有产生任何结果。然后,我们尝试在文件夹中提供一小组文件,并且作为输出接收到的文件列表是正确的,但一旦文件夹中的文件数量增加,结果再次不正确。因此,至少我们意识到,对于一次搜索中的大量文件(大约 600 个文件),find 会崩溃,请帮忙!
答案1
命令
find . ! -type l -perm -0020 -exec ls -l {} \;
是关闭。但是,如果您将-d
选项添加到命令中ls
,它将起作用,而不是告诉它列出内容目录。
给定的命令将在子目录中重复出现;该问题仅提到文件(和文件夹...)。你可能想说的是
find . -type f -perm -0020 -exec ls -l {} \;
完全忽略目录。给定的命令将列出也具有组可写权限的目录。
答案2
find . ! -type l -perm -g=w -exec ls -lLd {} \;
在包含约 6000 个文件的情况下/tmp
,上面的命令在 HP-UX 11.11 服务器上适用于我。您的问题不是来自文件数量。 600 个文件只是沧海一粟,除非你的物理内存量非常低。