переносить Windows-киоск на ubuntu, OTA [закрыт]

Под капотом awk выполняет все вычисления с использованием чисел с плавающей запятой с двойной точностью. По умолчанию он печатает их с помощью спецификатора формата printf(3) %.6g, а это означает, что если число больше шестизначных чисел, оно переключится на E-нотацию, что вы видели. Вы можете обойти это, установив переменную OFMT:

ls -lR |
    awk 'BEGIN { OFMT = "%d" }  
         /^-/  { total += $5 } 
         END   { print "Total:", total }'

Но есть верхний предел, за которым он не может дать вам точное количество байтов; он начнет округлять низкие биты суммы. 500 гигабайт = 500 * 1024 * 1024 * 1024 = 536870912000 & approx; 239. С обычной плавающей точкой IEEE это безопасно ниже этого предела (что примерно равно 252). Тем не менее, он достаточно велик, что я лично почувствовал бы себя лучше, используя язык программирования, который имел бы правильные «бонусы» (неограниченные целые числа). Например, Python:

#! /usr/bin/python
import os
import sys

space = 0L  # L means "long" - not necessary in Python 3
for subdir, dirs, files in os.walk(sys.argv[1]):
    for f in files:
        space += os.lstat(os.path.join(subdir, f)).st_size

sys.stdout.write("Total: {:d}\n".format(space))

Это также полностью невосприимчиво к проблемам с файлами с необычными символами в их именах. И он подсчитывает пространство, потребляемое скрытыми файлами.

Это вычисляет не может , что совпадает с тем, что печатает ls -l. Если вы хотите, чтобы количество фактически занятых байтов на диске (что du печатает), замените .st_size на .st_blocks * 512. (Да, множитель всегда 512, даже если st_blksize - это другое число.)

1
задан 13 January 2018 в 07:55

2 ответа

Вы можете использовать загрузку PXE со специально подготовленным изображением LTSP.

Не могу ответить больше, так как это очень сложный и широкий вопрос.

1
ответ дан 17 July 2018 в 23:11

Вы можете использовать загрузку PXE со специально подготовленным изображением LTSP.

Не могу ответить больше, так как это очень сложный и широкий вопрос.

1
ответ дан 24 July 2018 в 13:43

Другие вопросы по тегам:

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