É possível copiar dados binários contendo um caractere NUL para a área de transferência do X?

É possível copiar dados binários contendo um caractere NUL para a área de transferência do X?

Se eu fizer um dos seguintes:

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

e cole a partir da seleção correspondente (PRIMARY ou CLIPBOARD) em um dos seguintes:

  • áreas de texto do navegador
  • editores de texto
  • tubo como emxsel | hexdump

aobtém saída.

Então, é possível armazenar dados binários na área de transferência e colá-los mais tarde? Como?

Originalmente, eu queria fazer isso para salvar imagens na área de transferência, o que também resolveria:

Responder1

A área de transferênciafazcontém a string completa:

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

Entãoxclip -out vaiimprima a entrada literalmente, caracteres NUL e tudo. Provavelmente, a integração da área de transferência da área de trabalho interrompe a saída em caracteres NUL. Um problema óbvio ao colar caracteres NUL é que eles não seriam visíveis para o usuário e, como tal, provavelmente causariam um comportamento inesperado. Sem falar que mesmosoftware popular pode não conseguir lidar com caracteres NUL corretamente.

informação relacionada