главный
команда почти наверняка выводит запрошенное количество байтов, однако, что эти байты находятся влияет на то, как они отображаются в вашем терминале.
В частности, ваш заархивированный файл почти наверняка имеет окончания строк CRLF в стиле DOS, с CR в 30-м байте и LF в 31-м байте. голова -c29
, вывод заголовка исключает оба байта окончания строки, и вы видите что-то вроде
ваше имя@компьютер:~$ head -c29 файл.warc
ВАРК/1.0
WARC-Type: responseyourname@computer:~$
с приглашением вашей оболочки, следующим сразу после 29-го байта. Когда вы делаете голова -c31
, вы захватываете как CR, так и LF, и вывод выглядит как
вашеимя@компьютер:~$head -c31file.warc
ВАРК/1.0
WARC-тип: ответ
вашеимя@компьютер:~$
Однако, когда вы делаете голова -c30
, вывод содержит завершающий CR, но не следующий за ним LF — курсор возвращается в позицию 0, но остается в той же строке терминала, где он затем перезаписывается подсказкой вашей оболочки:
вашеимя@компьютер:~$head -c31file.warc
ВАРК/1.0
вашеимя@компьютер:~$
Если строка длиннее вашего приглашения, вы увидите символы из файла, выглядывающие за конец. Если твой PS1
приглашение было пустым, то вы бы увидели полный ожидаемый вывод.