4

Если я сделаю одно из:

printf 'a\0b' | xsel
printf 'a\0b' | xsel -b
printf 'a\0b' | xclip
printf 'a\0b' | xclip -selection c

и затем вставьте из соответствующего выбора (ПЕРВИЧНЫЙ или КЛИПАТИЧЕСКИЙ) на любой из:

  • браузер textareas
  • текстовые редакторы
  • труба как в xsel | hexdump

только получает выход.

Итак, возможно ли сохранить двоичные данные в буфере обмена, а затем вставить их позже? Как?

Первоначально я хотел сделать это, чтобы сохранить изображения в буфер обмена, что также решит:

1 ответ1

2

Буфер обмена действительно содержит полную строку:

$ printf 'a\0b' | hexdump -c
0000000   a  \0   b                                                    
0000003
$ printf 'a\0b' | xclip && xclip -out | hexdump -c
0000000   a  \0   b                                                    
0000003

Таким образом, xclip -out будет печатать входные данные, символы NUL и все. Скорее всего, интеграция буфера обмена рабочего стола останавливает вывод в NUL-символах. Одна очевидная проблема с вставкой NUL-символов заключается в том, что они не будут видны пользователю и, следовательно, могут вызвать неожиданное поведение. Не говоря уже о том, что даже популярное программное обеспечение может неправильно обрабатывать символы NUL.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .