次: , 上: Error Messages


9.1 findのエラーメッセージ

`invalid predicate `-foo''
これは,findのコマンドラインにダッシュやその他の特殊文字で開始さ れるものが含まれていることを意味します.findプログラムはこれを, テスト,アクション,またはオプションとして解釈しようとしますが,認識は しません.テストを試みる場合,指定しているものについてドキュメントを調 査して下さい.一方,文字列がワイルドカードを展開したファイル名の場合(例 えば,コマンドラインに`*'がある場合),`./*'や`.'を代わり に使用していると考慮します.
`unexpected extra predicate'
コマンドラインに余分な括弧がある場合(例えば,`find . -print \)'), 通常はこうなります.
`Warning: filesystem /path/foo has recently been mounted'
`Warning: filesystem /path/foo has recently been unmounted'
これらのメッセージは,findがディレクトリに移動し,デバイス番号と inodeが期待したものと異なるものが見つかったときに出力されます. findが移動したディレクトリがNFSファイルシステムの場合, automountは新しいファイルシステムを移動先のディレクトリにマウン トすることが多いので(つまり,使用したいファイルシステムを知る方法です), このメッセージは出力されません.そのため,このメッセージが出力される場 合は油断しないでください – automountが信用できない可能性があり ます.他の誰かがfindの実行中にファイルシステムを捜査している可能 性を検討してください.findを迷わせたり,別のファイル集合を探して いるときに,それもファイルの集合だとみせかけたい人もいます.
`/path/foo changed during execution of find (old device number 12345, new device number 6789, filesystem type is <whatever>) [ref XXX]'
このメッセージは,findがディレクトリを変更し,期待しない場所に移 動したときに出力されます.これは二つの状況のいずれかになります.最初の ものは,“オートマウント”で,findがマウントされているファイルシ ステムの現在の場所を決定する方法を知らないときに生じます.

二番目は,findがファイルシステムの階層を降りるのではなく上がって 行くときに,ディレクトリのデバイス番号がカレントディレクトリの変更中に 変わるとき生じます.findがファイルシステムの期待しない部分に迷い 込まないように,我々はこの時点で停止します.

`Don't know how to use getmntent() to read `/etc/mtab'. This is a bug.'
このメッセージは,findが現在のマウントポイントのリストを知る方法 が分からないシステムで上記と同じように出力されます. bug-findutils@gnu.orgでたずねてください.
`/path/foo/bar changed during execution of find (old inode number 12345, new inode number 67893, filesystem type is <whatever>) [ref XXX]"),'
このメッセージは,findがディレクトリを変更したとき,ディレクトリ のinode番号が以前取得したinode番号と異なる場合に出力されます.これは通 常,findがディレクトリ階層の深いところに長時間いて,他の人が親ディ レクトリを同じファイルシステムの別の場所に移動したことを意味します.こ れは,悪意があったり無かったりします.この状況では,思いがけないファイ ルシステムの矛盾を避けるため,その時点でfindは停止します.生じた ことを理解するため,ls -lifind /path -inum 12345 -o -inum 67893を実行することが可能です.
`sanity check of the fnmatch() library function failed.'
バグの報告をしてください.findutilsのコードを自分でコンパイルし た場合,ビルドツリーのコピーを保持したまま,システムの問題を質問しても かまいません.同様の解釈として,GNUバージョンのconfigureに問題が あるように思われますが,システムのfnmatchにバグがあるということ で,恐らく正しく動かないでしょう.
`cannot fork'
-execアクションや,似たようなもの(-okなど)を使用していて, システムがフリーのプロセススロットを使いきった場合に,通常これが発生し ます.また,システムが非常にビジーでシステムの最大プロセスの制限に到達 したり,リソースの制限に到達したことも考えられます.暴走したプロセスを システムで調査してください(psが動作すればですが).プロセススロッ トには,`root'の利用に予約されているものもあります.
`some-program terminated by signal 99'
-execやそれに似たもので起動されたプログラムは,異常終了のシグナ ルでキルされるものもあります.これは,それを報告するだけのメッセージで す.