「find」コマンドで「/proc」ファイルシステムを除外しました。私は、GNUベースではないホスト(たとえば、「find」に「-path」オプションがない最も古いAIX)で使用できるポータブルソリューションを好みます。
Linuxホストで試した内容と部分的にフィルタリングされた出力は次のとおりです。
$found/!-fstype プロセス>/dev/null あなたが探しているもの: `/proc/9475/task/9535/fdinfo/7':そのファイルやディレクトリはありません 検索: `/proc/10856': 該当するファイルやディレクトリがありません。 検索: `/proc/10856': 該当するファイルやディレクトリがありません。 検索: `/proc/10858': そのファイルやディレクトリはありません。 検索: `/proc/10858': そのファイルやディレクトリはありません。 検索: `/proc/15650': そのファイルやディレクトリはありません。 検索: `/proc/15650': そのファイルやディレクトリはありません。 検索: `/proc/15654': そのファイルやディレクトリはありません。 検索: `/proc/15654': そのファイルやディレクトリはありません。 検索: `/proc/15656': そのファイルやディレクトリはありません。 検索: `/proc/15656': そのファイルやディレクトリはありません。 検索: `/proc/15657': そのファイルやディレクトリはありません。 検索: `/proc/15657': そのファイルやディレクトリはありません。 検索: `/proc/15663': そのファイルやディレクトリはありません。 など....
「!-fstype proc」スイッチにもかかわらず、「find」が「/proc」ファイルシステムから移動し続ける理由を理解できません。
答え1
〜のようにTerdenは説明した、find
ディレクトリ/proc
は入力され続けますが、そのファイルシステムタイプのパス名は返されません。
proc
ファイル・システム・タイプが検出されるとすぐに検索パスを削除するには、次のようにします。
find / -fstype proc -prune -o -print
ただし、以前のバージョンでこれを実行したいので、find
この-fstype
オプションを使用できない可能性があります。-path
(の標準オプション)も利用できない場合、find
実装は明らかにPOSIXと互換性がないため、推奨事項を提示することは少し難しくなります。
選択できる-xdev
これを使用すると、起動find
パスと同じファイルシステムに厳密に保持されます。次に、find
確認したいファイルシステムごとに1つずつ実行する必要があります。 .-x
-xdev
-type d -name proc -prune
これが不可能な場合は、を使用して名前付きのすべてのディレクトリを無視する必要がありますproc
。
答え2
この-fstype
ディレクティブは、find
このファイルシステムタイプの結果を返さないように指示します。しかし、これがディレクトリを見ないという意味ではありません/proc
。これはproc
、ファイルシステムで見つかったファイルを返さないという意味にすぎません。ただし、/proc
特定のnon-procファイルシステムがマウントされているかどうかを知る方法がないため、まだディレクトリに移動する必要があります/proc/something
。たとえば、私のArchで次のことを見つけました。
$ find /proc ! -fstype proc -printf '%p %F\n' 2>/dev/null
/proc/sys/fs/binfmt_misc binfmt_misc
/proc/sys/fs/binfmt_misc/CLR binfmt_misc
/proc/sys/fs/binfmt_misc/register binfmt_misc
/proc/sys/fs/binfmt_misc/status binfmt_misc
/proc/sys/fs/binfmt_misc/
これはprocファイルシステムではないからです。
$ mount | grep proc
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=51,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12642)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
/proc
したがって、non-procファイルシステムが保存される2つのマウントポイントがあります。
したがって、これを念頭に置いて、あなたの質問にはエラーメッセージのみが表示されることに注意してください。これらのファイルは実際には返されないので、期待find
どおりに動作するようです。その中にあるファイルを繰り返します/proc
が、ファイルシステムにある場合は一致するとは見なされませんproc
。