2番目の一致後にfindコマンドを停止するにはどうすればよいですか?

2番目の一致後にfindコマンドを停止するにはどうすればよいですか?

find最初の2つの一致のみを表示してから終了するコマンドを作成するにはどうすればよいですか?最初の一致後にfindコマンドをどのように停止できますか?録音されたバージョンは2つだけです。

ベストアンサー1

リンクされた回答からに置き換えてください12

find . ... -print | head -n 2

この点に注意してくださいするファイル名は一般的なものとみなされます。つまり、改行文字は含まれていません。したがって、スクリプトソリューションには最適ではありません。 (望むより検索結果を繰り返すのはなぜ悪い習慣ですか?詳しくはこちらをご覧ください。 )はまだ高速でインタラクティブな使用のための最良の方法です。

さらに、ファイル数が多いシステムでは、プロセスがより多くのファイル名を書き込もうとした後にシャットダウンするとSIGPIPEを受け取るため、この-exec sh -c 'echo "$1"; echo "$2"' _ {} +方法よりも高速です。findheadfind

-exec結果が十分であれば、コマンドが2つ以上の結果を印刷できることは言うまでもありません。たとえば、find / -exec sh -c 'echo "$1"; echo "$2"' _ {} +長い間終了せず、各ARG_MAX結果で合計2つのファイルではなく2つのファイルが印刷されます。

おすすめ記事