7

Это просто потому, что переход от имен файлов к номерам инодов труден в пространстве пользователя, и вы не можете читать иноды оттуда?

3 ответа3

6

Реализация du(1) в GNU coreutils будет поддерживать опцию --inodes со следующим выпуском (> 8.21) ... Я только что выпустил патч для Git (http://git.sv.gnu.org/cgit/coreutils.git/commit/?id=333dc83d). См. Http://lists.gnu.org/archive/html/coreutils/2013-07/msg00087.html.

2

Это не даст точного ответа - в частности, оно приравнивает записи каталога к файлам и, таким образом, дважды учитывает жесткие ссылки, а также имеет проблемы с переводами строк в именах файлов / каталогов - но, вероятно, "достаточно хорошо" для большинства целей:

find /data | awk -F/ '{s=""; for (i=2; i<NF;i++) {s = s"/"$i; print s}}' | sort | uniq -c | sort -n

Это сортирует по количеству инодов (sic). если вы хотите традиционный порядок сортировки по каталогу:

find /data | awk -F/ '{s=""; for (i=2; i<NF;i++) {s = s"/"$i; print s}}' | sort | uniq -c | sort -k2

Чаще всего я хочу что-то подобное, когда на диске заканчиваются inode, и я хочу знать, где они используются. Для этой цели некоторые незначительные неточности обычно не имеют большого значения.

Должна быть возможность использовать «find -ls» и анализировать номера инодов в листинге, чтобы исключить дубликаты, если вы хотите что-то более точное.

2

Используйте df , а не du !

du означает "использование диска". Это df означает "диск свободен" и будет проверять правильность файловой системы. Включая использование инода с опцией -i !

В противном случае просто сделайте:

find thedirectory -exec ls -di {} \;|awk '{print $1}'|sort|uniq|wc -c

или похожие

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .