Если я сделаю одно из следующего:
printf 'a\0b' | xsel
printf 'a\0b' | xsel -b
printf 'a\0b' | xclip
printf 'a\0b' | xclip -selection c
а затем вставьте из соответствующего выделения (ОСНОВНОГО или БУФЕРА ОБМЕНА) в один из следующих вариантов:
- текстовые области браузера
- текстовые редакторы
- труба как в
xsel | hexdump
получает только a
вывод.
Итак, возможно ли сохранить двоичные данные в буфере обмена, а затем вставить их позже? Как?
Первоначально я хотел сделать это, чтобы сохранять изображения в буфер обмена, что также решило бы:
решение1
Буфер обменаделаетсодержат полную строку:
$ 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.