如果我做以下任何一件事:
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 字符。