Как используются блоки `du`

В продолжение ответа Джеффа Шаллера у нас есть файл start_iptables.sh , который, по сути, является одноразовой операцией, настраивающей правила iptables. Мы сохраняем правила, используя iptables-persistent save , и запускаем файл только при внесении изменений. В конце мы перезапускаем наш стек Docker, поскольку все контейнеры Docker вышли.

echo "-------------------------------------------------"
echo "Restarting Docker stack..."
bash /path/to/start-docker-stack
echo "-------------------------------------------------"
3
19.05.2016, 18:00
1 ответ

du использует stat (2) , чтобы найти количество блоков, используемых файлом. Если вы запустите stat big , вы увидите, что количество блоков совпадает с числом, указанным в du .

Вы можете заставить du подсчитывать байты, используя параметр -b ; тогда его вывод соответствует ls .

В обоих случаях он использует stat (2) (или, скорее, fstatat (2) , по крайней мере, в моей версии):

$ strace du big|&grep big
execve("/usr/bin/du", ["du", "big"], [/* 57 vars */]) = 0
newfstatat(AT_FDCWD, "big", {st_mode=S_IFREG|0644, st_size=2147483648, ...}, AT_SYMLINK_NOFOLLOW) = 0
write(1, "0\tbig\n", 60 big

Разница в обработке , видимый в du.c .

4
27.01.2020, 21:18

Теги

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