Я хочу знать, сколько файлов у меня в файловой системе. Я знаю, что могу сделать что-то вроде этого:
find / -type f | wc -l
Это кажется крайне неэффективным. Что я действительно хотел бы сделать, так это найти общее количество уникальных инодов, которые считаются «файлами».
Есть ли способ лучше?
Заметка:
Я хотел бы сделать это, потому что я разрабатываю программу синхронизации файлов, и я хотел бы провести некоторый статистический анализ (например, сколько файлов у обычного пользователя по сравнению с тем, сколько файлов в системе). Однако мне не нужно ничего знать об этих файлах, просто о том, что они существуют (пути вообще не имеют значения). Мне особенно хотелось бы знать эту информацию для каждой смонтированной файловой системы (и связанной с ней точки монтирования).
источник
df
будет отображать общее количество inode как 0 в этих файловых системах. Другие типы должны показывать статистику inode базовой файловой системы./dev/null
просмотр, как если бы вы получили строки, предупреждающие о том, что файлы/proc
являются «виртуальными»?Используйте
statvfs()
и рассчитайтеf_files - f_ffree
.источник