Bash 重定向编码

Bash 重定向编码

我正在尝试使用命令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 位输出。您可以使用的字符并不多。

相关内容