ユーザーやグループなしでファイルを検索する必要があります。
find / -nouser -o -nogroup
これは大丈夫だと思います。しかし、NFS共有を検索したくありません。 findコマンドからNFS共有を除外する方法は?
答え1
あなたが得る可能性が最も近いのは、-xdev
「他のファイルシステムにディレクトリを削除しないでください」を意味するuseです。次に、使用するファイルシステムを指定する必要があります。する検索したいです。
答え2
GNU findを使用すると述語を使用できます-fstype
。
find / -fstype nfs -prune -o \( -nouser -o -nogroup \) -print
それなら、hymieのアプローチはより意味があるでしょう。つまり、検索したくないFSをブラックリストに追加するのではなく、検索したいFSをホワイトリストに追加することです。
jfs2
ファイルシステムのみを含めるには(/
にあると仮定jfs2
)、次のように作成する必要があります。
find / ! -fstype jfs2 -prune -o \( -nouser -o -nogroup \) -print
次のように書かないでください。
find / -fstype jfs2 \( -nouser -o -nogroup \) -print
これは、jfs2以外のファイルシステムのファイルが印刷されるのを防ぎますが、find
jfs2以外のファイルシステムをクロールするのを防ぎません(必要です-prune
)。
気づく-a
(そして-o
省略した場合は暗黙)が(より優先されます)。または)なので、かっこが必要かどうかに注意を払う必要があります。
~上正しいコマンドの略語は次のとおりです。
find / \( \( ! -fstype jfs2 \) -a -prune \) -o \
\( \( -nouser -o -nogroup \) -a -print \)
答え3
答え4
特定の検索オプションを試しましたが、問題が発生して次の方法に切り替えました。
find $(mount | awk '!/:/ {printf "%s ", $3}') -xdev
NFSがマウントされていないすべてのファイルシステムを検索する必要があります。