我需要搜索没有用户或没有组的文件。
find / -nouser -o -nogroup
Run Code Online (Sandbox Code Playgroud)
我认为这是可以的。但是,我不想搜索 NFS 共享。如何在 find 命令中排除 NFS 共享?
Sté*_*las 10
使用 GNU find,您可以使用-fstype
谓词:
find / -fstype nfs -prune -o \( -nouser -o -nogroup \) -print
Run Code Online (Sandbox Code Playgroud)
话虽如此,hymie 的方法可能更有意义:将您想要搜索的 FS 列入白名单,而不是将您不想搜索的那些列入黑名单。
如果您只想包含jfs2
文件系统(假设/
是 on jfs2
),那么您需要编写它:
find / ! -fstype jfs2 -prune -o \( -nouser -o -nogroup \) -print
Run Code Online (Sandbox Code Playgroud)
不要写:
find / -fstype jfs2 \( -nouser -o -nogroup \) -print
Run Code Online (Sandbox Code Playgroud)
虽然这会停止find
打印非 jfs2 文件系统中的文件,但不会阻止它抓取那些非 jfs2 文件系统(您需要-prune
)。
请注意-a
(AND如果省略则为隐式)优先于-o
(OR),因此您需要注意是否需要括号。
上述正确命令的缩写是:
find / \( \( ! -fstype jfs2 \) -a -prune \) -o \
\( \( -nouser -o -nogroup \) -a -print \)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28077 次 |
最近记录: |