不幸的是,我有一個應用程序,它將數百萬個檔案放在一個平面目錄中(沒有任何子目錄)
如果我對給定目錄執行 ls 或 find ,則 ls 或 find 會消耗數千兆位元組的 RAM。
我猜,原因是 ls 和 find 將一個目錄的所有檔案讀取到 RAM 中。
我的問題是。
有沒有辦法列出這個目錄下的檔案而不消耗那麼多記憶體?
任何解決方案(特殊選項/不同命令/編譯 C 程式/特殊 python 模組)都會很有趣。
答案1
有:
該ls
命令不僅讀取檔名,還fstat()
讀取每個檔案。如果你使用這個opendir() / readdir() / close()
序列,你會做得更好。
除此之外,列出目錄所需的資源也是檔案系統的功能:XFS
使用的資源遠少於ext4
.