残念ながら、私は何百万ものファイルを1つのフラットなディレクトリ(サブディレクトリなし)に置くアプリケーションを持っています。
指定されたディレクトリで ls または find を実行すると、ls または find は数ギガバイトの RAM を消費します。
理由は、ls と find が 1 つのディレクトリのすべてのファイルを RAM に読み込むためだと思います。
私の質問は。
メモリをあまり消費せずにこのディレクトリのファイルを一覧表示する方法はありますか?
どのような解決策(特別なオプション / 異なるコマンド / コンパイルする C プログラム / 特別な Python モジュール)でも興味深いでしょう。
答え1
がある:
このls
コマンドはファイル名だけでなく、fstat()
各ファイルも読み取ります。シーケンスを使用すると、opendir() / readdir() / close()
はるかに優れた結果が得られます。
さらに、ディレクトリを一覧表示するために必要なリソースもファイル システムの機能です。XFS
よりもはるかに少ないリソースを使用しますext4
。