Si hago cualquiera de:
printf 'a\0b' | xsel
printf 'a\0b' | xsel -b
printf 'a\0b' | xclip
printf 'a\0b' | xclip -selection c
y luego pegue desde la selección correspondiente (PRIMARIO o PORTAPAPELES) en cualquiera de:
- áreas de texto del navegador
- editores de texto
- tubería como en
xsel | hexdump
solo a
obtiene salida.
Entonces, ¿es posible almacenar datos binarios en el portapapeles y luego pegarlos? ¿Cómo?
Originalmente quería hacer esto para guardar imágenes en el portapapeles, lo que también resolvería:
Respuesta1
el portapapeleshacecontener la cadena completa:
$ printf 'a\0b' | hexdump -c
0000000 a \0 b
0000003
$ printf 'a\0b' | xclip && xclip -out | hexdump -c
0000000 a \0 b
0000003
Entoncesxclip -out
voluntadimprima la entrada palabra por palabra, caracteres NUL y todo. Lo más probable es que la integración del portapapeles del escritorio detenga la salida en caracteres NUL. Un problema obvio al pegar caracteres NUL es que no sería visible para el usuario y, como tal, probablemente provocaría un comportamiento inesperado. Sin mencionar que inclusoEl software popular puede no manejar correctamente los caracteres NUL..