![Bash 重定向编码](https://linux22.com/image/593749/Bash%20%E9%87%8D%E5%AE%9A%E5%90%91%E7%BC%96%E7%A0%81.png)
我正在尝试使用命令base64 somefile.ext
将文件转换为文本。唯一的问题是文件大小增加了 35%,这对于我的大文件来说是不可接受的。我怀疑文件可以以某种方式编码以使其大小变小。目前输出文件的编码是us-ascii
。
是否有一种编码可以使文件大小更小?
答案1
编码之前先压缩即可。
$ wc -c < /bin/ls
114024
$ < /bin/ls base64 | wc -c
154033
$ xz < /bin/ls | base64 | wc -c
59878
(您可以使用 gzip、bzip2 或任何您想要的压缩器,但需要记住在接收端解压缩)
可打印的 ascii 字符并不多。base64 使用 64 个字符,这意味着 6 位输入产生 8 位输出。您可以使用的字符并不多。