検索でNFSディレクトリを除外する方法は?


9

ユーザーまたはグループのないファイルを検索する必要があります。

find / -nouser -o -nogroup

これは大丈夫だと思います。しかし、NFS共有を検索したくありません。findコマンドでNFS共有を除外するにはどうすればよいですか?


2
find / -fstype ext4 -nouser -o -nogroupext4を使用していない場合は、ext3などを代用してみてください
doneal24

1
これを回答として投稿してください
gaskoピーター2013

@ DougO'Neal回答として投稿してください。
ティムケネディ

1
@ DougO'Neal、これはfindnfs FSへの下降を止めず、そこにあるファイルを印刷しないだけです。
ステファンChazelas

-execをdu組み合わせ-fstype-xdev(別名-mount)などを使用する必要があるようです
Gert van den Berg

回答:


7

GNU findを使用すると、-fstype述語を使用できます。

find / -fstype nfs -prune -o \( -nouser -o -nogroup \) -print

そうは言っても、hymieのアプローチはおそらくより理にかなっています。検索したくないFSをブラックリストに登録するのではなく、検索したいFSをホワイトリストに登録してください。

jfs2ファイルシステムのみを含める場合(/onがonであると想定jfs2)、次のように記述する必要があります。

find / ! -fstype jfs2 -prune -o \( -nouser -o -nogroup \) -print

書かないでください:

find / -fstype jfs2 \( -nouser -o -nogroup \) -print

findjfs2以外のファイルシステムのファイルの印刷は停止しますが、jfs2以外のファイルシステム(必要な-pruneもの)のクロールは停止しません。

なお、-aAND省略した場合、暗黙的である)に優先している-oORあなたは括弧が必要とされているかどうかを監視する必要があるので、)。

上記の正しいコマンドは以下の略です。

find / \( \( ! -fstype jfs2 \) -a -prune \) -o \
  \( \( -nouser -o -nogroup \) -a -print \)

10

おそらく最も近いのはを使用すること-xdevです。つまり、「他のファイルシステムのディレクトリを降りないでください」ということです。そして、あなたはどのファイルシステムを指定する必要があります検索します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.