other versions
- wheezy 2:7.3.547-7
- wheezy-backports 2:7.4.488-3~bpo70+1
- jessie 2:7.4.488-7+deb8u3
- testing 2:8.0.0197-4
- unstable 2:8.0.0197-4
other languages
XXD(1) | General Commands Manual | XXD(1) |
ИМЯ¶
xxd - создаёт представление файла в виде шестнадцатеричных кодов или выполняет обратное преобразование.КОМАНДНАЯ СТРОКА¶
xxd -h[elp]ОПИСАНИЕ¶
xxd создаёт представление указанного файла или данных, прочитанных из потока стандартного ввода, в виде шестнадцатеричных кодов. Эта команда также может выполнить обратное преобразование заданных шестнадцатеричными кодами данных в исходный бинарный формат. Подобно командам uuencode(1) и uudecode(1), она позволяет выполнять преобразование бинарных данных в ASCII-код, который можно передавать по электронной почте, однако, помимо этого, программа xxd позволяет выполнять декодирование в поток стандартного вывода, а также может применяться для создания заплаток для бинарных файлов.КЛЮЧИ ЗАПУСКА¶
Если входной_файл не задан, то соответствующие данные читаются из потока стандартного ввода. В случае, если в качестве входного_файла используется символ `-', источником данных также выступает поток стандартного ввода. В том случае, если не указан выходной_файл (или вместо него используется символ `-' ), результат преобразования направляется в поток стандартного вывода. Обратите внимание, что используется "ленивый" алгоритм разбора ключей, который не проверяет более одной буквы ключа, если в этом ключе не используется параметр. Пробелы между единственным символом ключа и соответствующим параметром не являются обязательными. Параметры ключей могут быть заданы с использованием десятичного, шестнадцатеричного или восьмеричного формата. Таким образом, ключи -c8, -c 8, -c 010 и -cols 8 являются равнозначными.- -a | -autoskip
- Включает автоматический пропуск: вместо последовательности нулевых строк используется одиночный символ '*'. По умолчанию не применяется.
- -b | -bits
- Вместо шестнадцатеричного кода используются биты (двоичные цифры). При использовании этого ключа вместо обычного шестнадцатеричного представления октетов используются наборы из восьми символов "1" и "0". Каждая строка предваряется номером строки в шестнадцатеричном виде, а завершается символьным представлением (в виде ascii или ebcdic). Ключи -r, -p, -i в этом режиме не работают.
- -c кол | -cols кол
- Задаёт количество октетов <кол>, которое выводится на каждой строке. По умолчанию используется значение 16 (-i: 12, -ps: 30, -b: 6). Максимально допустимое значение: 256.
- -E | -EBCDIC
- Изменяет способ кодирования символов в правой колонке с ASCII на EBCDIC. Этот ключ не изменяет шестнадцатеричное представление. Данный ключ не имеет смысла, если используются ключи -r, -p или -i.
- -g байт | -groupsize байт
- Позволяет выполнять группировку указанного количества <байтов> (две шестнадцатеричные цифры или восемь битов), отделяя группы друг от друга пробелами. Значение -g 0 применяется для отказа от использования группировки. По умолчанию используется значение <байт> равное 2 в обычном режиме и 1 в битовом режиме. Группировка не применяется в режимах postscript и include.
- -h | -help
- Выводит справку по доступным ключам командной строки и завершает работу программы. Создание шестнадцатеричного представления не выполняется.
- -i | -include
- Позволяет создавать вывод в стиле подключаемых заголовочных файлов языка C. Вывод содержит полноценное определение статического массива данных, имя которого соответствует имени входного файла, если xxd не считывает данные из потока стандартного ввода.
- -l длина | -len длина
- Завершает работу после записи заданного в параметре <длина> количества октетов.
- -p | -ps | -postscript | -plain
- Использует непрерывный формат вывода шестнадцатеричного кода, известный как "простой" стиль или стиль "postscript".
- -r | -revert
- Изменяет смысл операции на противоположный: позволяет выполнять преобразование шестнадцатеричного представления в бинарный код (или применять результат в качестве заплаты). Если вывод происходит не в поток стандартного вывода, то xxd выполняет добавление кода к соответствующему файлу. При использовании комбинации ключей -r -p происходит чтение "простого" шестнадцатеричного представления без использования информации о номерах строк и какого-либо специального раскроя колонок. Пробелы и символы новой строки могут встречаться в любом месте исходных данных.
- -seek смещение
- При использовании после ключа -r : добавлять указанное <смещение> к файловым позициям, обнаруженным в исходных данных.
- -s [+][-]seek
- Начинает работу с указанного абсолютного (или относительного) <смещения> в байтах во входном_файле. + указывает, что смещение является относительным по отношению к текущей файловой позиции в потоке стандартного ввода (бессмысленно, если чтение происходит не из потока стандартного ввода). - указывает, что должно быть прочитано указанное количество символов от конца ввода (либо, если сочетается с + : перед текущей позиции файла в потоке стандартного ввода). Если ключ -s не используется, то xxd начинает работу от текущей позиции в файле.
- -u
- Использует шестнадцатеричные цифры в верхнем регистре. По умолчанию используются цифры в нижнем регистре символов.
- -v | -version
- Отображает информацию о версии программы.
ПОДВОДНЫЕ КАМНИ¶
xxd -r обладает встроенным интеллектом для распознавания информации о номерах строк. Если возможен поиск по входному файлу, то номера строк в начале каждой строки шестнадцатеричного представления могут быть неупорядоченными, некоторые строки могут быть пропущены или пересекаться друг с другом. В этих случаях xxd использует lseek(2) для перехода к следующей позиции. Если поиск по входному файлу невозможен, то допустимы только пропуски строк, которые заполняются нулевыми байтами. xxd -r никогда не выводит сообщений об ошибках. Мусор пропускается молча. При редактировании шестнадцатеричных представлений бинарных файлов обращайте внимание, что xxd -r пропускает в строке ввода любые данные после прочтения достаточного количества колонок шестнадцатеричных данных (см. ключ -c). Это означает, что изменения, внесенные в колонки с печатными символами ascii (или ebcdic), всегда игнорируются. При обратном преобразовании шестнадцатеричного представления в стиле postscript с помощью команды xxd -r -p количество колонок не учитывается. В этом случае распознаются все символы, которые похожи на пары шестнадцатеричных цифр. Обратите внимание на различие между командами % xxd -i файл и % xxd -i < файл Команда xxd -s +seek может отличаться от xxd -s seek, поскольку для того, чтобы "отмотать" данные на входе назад, используется вызов lseek(2). При использовании `+' поведение будет отличаться, если входные данные поступают с потока стандартного ввода, а позиция в файле стандартного ввода не находится в начале файла к тому моменту, когда программа xxd запущена и приступает к чтению ввода. Нижеследующие примеры помогут прояснить (или ещё больше запутать!) ситуацию... Отмотка назад потока стандартного ввода; необходимо, поскольку 'cat' уже выполнила чтение до конца потока стандартного ввода: % sh -c 'cat > plain_copy; xxd -s 0 > hex_copy' < file Вывод шестнадцатеричного представления от позиции в файле 0x480 (= 1024+128). Символ `+' означает "относительно текущей позиции", таким образом `128' добавляется к первому килобайту, где завершает работу dd: % sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet' < file Вывод шестнадцатеричного представления от позиции в файле 0x100 (= 1024-768): % sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet' < file В то же время, следует заметить, что подобные ситуации встречаются довольно редко, так что символ `+' обычно не используется. Автор предпочитает наблюдать за работой xxd с помощью strace(1) или truss(1) в тех случаях, когда применяется ключ -s.ПРИМЕРЫ¶
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ¶
Программа xxd завершает работу со следующими значениями:- 0
- Ошибки не обнаружены.
- -1
- Операция не поддерживается (выполнение xxd -r -i пока невозможно).
- 1
- Ошибка при разборе ключей командной строки.
- 2
- Проблемы во входном файле.
- 3
- Проблемы в выходном файле.
- 4,5
- Желательная позиция поиска недостижима.
СМОТРИ ТАКЖЕ¶
uuencode(1), uudecode(1), patch(1)ПРЕДУПРЕЖДЕНИЕ¶
Странность этой программы соответствует особенностям мозга её создателя. Используйте её на свой страх и риск. Копируйте файлы, отслеживайте вызовы, становитесь волшебником.ВЕРСИЯ¶
Эта страница справочника документирует xxd версии 1.7.АВТОР¶
(c) 1990-1997 Юрген Вайгерт (Juergen Weigert)August 1996 | Страница man для xxd |