В gnu coreutils
версии 8.22 программа du
стала понимать парметр --inodes
.
С ним она показывает статисику по inode-ам вместо блоков (байтов).
Changelog: https://savannah.gnu.org/forum/forum.php?forum_id=7815
Но если нужная версия почему-то недоступна в пакетах? Можно собрать из исходников.
Архив с исходниками нужной версии скачиваем здесь: https://ftp.gnu.org/gnu/coreutils/
Исходники также можно взять из git-а (git://git.sv.gnu.org/coreutils
), но их сборка не такая прямолинейная, как из релизного архива.
Обсуждают например здесь: https://bug-coreutils.gnu.narkive.com/q14Ima4F/bug-32762-bug-at-coreutils-compile
Распаковать, пойти в каталог, запустить сборку:
$ tar -xf coreutils-8.32.tar.xz
$ cd coreutils-8.32
$ ./configure
$ make
Готово:
$ file src/du
src/du: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=918968033d94f7add973fc78b395cef68c22b505, with debug_info, not stripped
Если при сборке жалуется на нехватку bison и чего-нибудь еще – устанавливать.
Воркэраунд с библиотеками, обсуждается здесь: https://askubuntu.com/questions/530617/how-to-make-a-static-binary-of-coreutils
$ cd /usr/lib/gcc/x86_64-linux-gnu/(версия gcc)
$ sudo cp crtbeginT.o crtbeginT.orig.o
$ sudo cp crtbeginS.o crtbeginT.o
Распаковать, запустить сборку:
$ tar -xf coreutils-8.32.tar.xz
$ cd coreutils-8.32
$ ./configure
$ make SHARED=0 CFLAGS='-static -std=gnu99 -static-libgcc -static-libstdc++ -fPIC'
Параметры для статической сборки отсюда: http://eugene.taranov.me/2016/07/21/coreutils-static/
Готово:
$ file src/du
src/du: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=5d381c2ffd61cefca06303518f5d5f0d41d6a2bf, not stripped
Можно вернуть на место crtbeginT.orig.o
.
du --inodes
: https://savannah.gnu.org/forum/forum.php?forum_id=7815