Кодировка перенаправления 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 бит вывода. Есть не так много, что вы можете использовать.