Дисковые и сетевые расчеты, 1000 против 1024

10#говорит ему расширить число, используя основание 10:

Constants with a leading 0 are interpreted as octal numbers. A leading ‘0x’ or ‘0X’ denotes hexadecimal. Otherwise, numbers take the form [base#]n, where the optional base is a decimal number between 2 and 64 representing the arithmetic base, and n is a number in that base. If base# is omitted, then base 10 is used. When specifying n, the digits greater than 9 are represented by the lowercase letters, the uppercase letters, ‘@’, and ‘_’, in that order. If base is less than or equal to 36, lowercase and uppercase letters may be used interchangeably to represent numbers between 10 and 35.

Примеры:

База 16:

$ echo $((16#A))
10

Основание 8:

$ echo $((8#12))
10

База 2:

$ echo $((2#1010))
10

Как указывает steeldriver, это, вероятно, делается для обработки любых потенциальных ведущих нулей из команды даты, но с последними версиями даты GNU это можно сделать проще, используя:date +%-H

1
13.12.2019, 00:26
1 ответ

По крайней мере, в моей системе (Debian 10 ), man duговорит, что опция -hбудет использовать степени 1024, и вместо этого вам придется использовать --si, чтобы получить степени 1000.

Однако, поскольку скорости передачи данных, как правило, используют степень 1000, а duиспользует 1024 -мегабайт, вам, возможно, придется пройти весь путь до байтов, чтобы получить абсолютно правильное значение:

2,3 ТиБ*(1024^4 байт/ТиБ )/ 102 000 000 байт/с = 24973 секунды = 6,89 часа

1
27.01.2020, 23:40

Теги

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