Как я могу найти количество файлов в файловой системе?

Существует способ использовать Ctrl-R с tcsh. Включите следующее Ваш ~/.cshrc:

bindkey "^r" i-search-back (это - просто знак каре и буква R),

Это экономит время для меня.

26
18.09.2011, 14:21
2 ответа

- inodes опция к df скажет Вам, сколько inodes резервируется для использования. Например:

$ df --inodes / /home
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1            3981312  641704 3339608   17% /
/dev/sda8            30588928  332207 30256721    2% /home
$ sudo find / -xdev -print | wc -l
642070
$ sudo find /home -print | wc -l
332158
$ sudo find /home -type f -print | wc -l
284204

Заметьте что количество записей, возвращенных из find больше, чем IUsed для корня (/) файловая система, но меньше для / домой. Но оба в 0,0005%. Причина несоответствий из-за жестких ссылок и аналогичных ситуаций.

Помните, что каталоги, символьные ссылки, сокеты домена UNIX и именованные каналы являются всеми 'файлами', поскольку это касается файловой системы. Так использование find -type f флаг дико неточен со статистической точки зрения.

34
27.01.2020, 19:40
  • 1
    я думаю, что это - то, что я ищу. Там какой-либо путь состоит в том, чтобы узнать, сколько из каждого типа файла существует? Это не непосредственно необходимо моему приложению, но могло быть полезным знанием. –  beatgammit 18.09.2011, 05:08
  • 2
    Не осматривая inodes каждого файла в файловой системе, которая была бы о том же как выполнение находки. –  Arcege 18.09.2011, 05:20
  • 3
    df понимает большинство файловых систем (ext2-4, ntfs, жир, reiserfs, и т.д.)? –  beatgammit 18.09.2011, 05:21
  • 4
    Это поняло бы любой тип файловой системы, который мог быть смонтирован. Некоторые типы файловой системы не имеют inodes (например, жир); df отобразил бы общее количество inodes как 0 в тех файловых системах. Другие типы должны показать inode статистику базовой файловой системы. –  Arcege 18.09.2011, 05:35
  • 5
    Должны перенаправить ошибки к /dev/null наблюдение, поскольку Вы получили бы строки, предупреждающие Вас что файлы в /proc являются "виртуальными"? ре –  n0pe 26.11.2011, 16:02

Использовать statvfs(), и вычислите f_files - f_ffree.

2
27.01.2020, 19:40

Теги

Похожие вопросы