Find
如何使用 find 排除 NFS 目錄?
我需要搜尋沒有使用者或沒有組的文件。
find / -nouser -o -nogroup
我認為這沒關係。但是,我不想搜尋 NFS 共享。如何在 find 命令中排除 NFS 共享?
使用 GNU find,您可以使用
-fstype
謂詞:find / -fstype nfs -prune -o \( -nouser -o -nogroup \) -print
話雖如此,hymie 的方法可能更有意義:將您想要搜尋的 FS 列入白名單,而不是將您不想搜尋的 FS 列入黑名單。
如果您只想包含
jfs2
文件系統(假設/
是 onjfs2
),那麼您需要編寫它:find / ! -fstype jfs2 -prune -o \( -nouser -o -nogroup \) -print
不要寫它:
find / -fstype jfs2 \( -nouser -o -nogroup \) -print
雖然這將停止
find
在非 jfs2 文件系統中列印文件,但這不會阻止它爬取那些非 jfs2 文件系統(您需要-prune
)。請注意,
-a
( AND如果省略則隱含) 優先於-o
( OR ),因此您需要注意是否需要括號。上述正確命令的縮寫:
find / \( \( ! -fstype jfs2 \) -a -prune \) -o \ \( \( -nouser -o -nogroup \) -a -print \)
最接近的可能是使用
-xdev
,這意味著“不要在其他文件系統上下降目錄”。然後,您需要指定要搜尋的文件系統。