ls -fのポイントは何ですか(またはなぜ停止するのですか?)

ls -fのポイントは何ですか(またはなぜ停止するのですか?)

約100,000ファイルのディレクトリがあります。 ls -fが1分以上中断されます。私はstraceを実行してすぐにgetdentを見始めたので、ディレクトリをはっきりと読みました。また、brkへの呼び出しがたくさんあるため、lsがメモリにバッファリングすることは明らかです。私はreaddirを呼び出してファイル名を出力する単純なプログラムを書いて、すぐに応答します。ただし、ls -f は出力を提供しません。何を提供しますか?私の考えでは、-fのポイントは、lsにreaddirのみを実行させることです。ディレクトリの内容をリストする移植可能で信頼性の高い方法はありますか? (参考までに、これはLinuxのgnu coreutilsにあるlsです。)

-編集する-

エイリアスもありますが、「/bin/ls -1f > /dev/null」は8~15秒かかり、「/bin/ls -1fx > /dev/null」は4~11秒かかりますが、単純なプログラムreaddirのみ可能 0.011秒がかかります。 gnu lsをあまりひどくするにはどうすればよいですか?

ベストアンサー1

要点-fは、各ファイル項目を計算する必要がなく、項目を表示する前にすべてのファイル項目を読み取る必要がないことです。他のオプションを無効にする「メタ」オプション。

はい。あなたの期待に応えなければなりません。なぜそうでないのかは答えられませんが、シェルエイリアスやコマンドに追加のオプションを挿入することがあると思います。これは機能を無効にするのではなく、再度有効にすることができ、-f「より具体的な」と見なされるため、優先順位を付けます。

おすすめ記事