base64命令用法#

base64将从文件或标准输入读取的数据转换为 Base64 编码格式(或进行反向转换)。Base64 编码格式使用可打印的 ASCII 字符来表示二进制数据。

Base64 编码会将数据扩展至原始大小的约 133%。Base32 编码会将数据扩展至原始大小的约 160%。该格式符合 RFC 4648 标准。

$ base64 push.sh
IyEvYmluL2Jhc2gNClRJTUVTVEFNUD0kKGRhdGUgKyVzKQ0KDQpybSAtcmYgcmVzb3VyY2VzLyBw
dWJsaWMvIC5odWdvX2J1aWxkLmxvY2sNCmdpdCBhZGQgLg0KZ2l0IGNvbW1pdCAtbSAidXBkYXRl
OiAke1RJTUVTVEFNUH0iDQpnaXQgcHVzaA0Kc2xlZXAgM3MNCmVjaG8gIkRvbmUhIENvbW1pdCR7
VElNRVNUQU1QfSINCnNsZWVwIDNzDQo=

-w cols参数设置列数,及输出多少个字符进行换行,默认为64,禁用换行设置为0即可。

$ base64 push.sh -w 120
IyEvYmluL2Jhc2gNClRJTUVTVEFNUD0kKGRhdGUgKyVzKQ0KDQpybSAtcmYgcmVzb3VyY2VzLyBwdWJsaWMvIC5odWdvX2J1aWxkLmxvY2sNCmdpdCBhZGQg
Lg0KZ2l0IGNvbW1pdCAtbSAidXBkYXRlOiAke1RJTUVTVEFNUH0iDQpnaXQgcHVzaA0Kc2xlZXAgM3MNCmVjaG8gIkRvbmUhIENvbW1pdCR7VElNRVNUQU1Q
fSINCnNsZWVwIDNzDQo=

$ base64 push.sh -w 0
IyEvYmluL2Jhc2gNClRJTUVTVEFNUD0kKGRhdGUgKyVzKQ0KDQpybSAtcmYgcmVzb3VyY2VzLyBwdWJsaWMvIC5odWdvX2J1aWxkLmxvY2sNCmdpdCBhZGQgLg0KZ2l0IGNvbW1pdCAtbSAidXBkYXRlOiAke1RJTUVTVEFNUH0iDQpnaXQgcHVzaA0Kc2xlZXAgM3MNCmVjaG8gIkRvbmUhIENvbW1pdCR7VElNRVNUQU1QfSINCnNsZWVwIDNzDQo=

--decode-d将操作模式从编码改为解码,即将输入的base64编码解码为原始数据

$ echo IyEvYmluL2Jhc2gNClRJTUVTVEFNUD0kKGRhdGUgKyVzKQ0KDQpybSAtcmYgcmVzb3VyY2VzLyBwdWJsaWMvIC5odWdvX2J1aWxkLmxvY2sNCmdpdCBhZGQgLg0KZ2l0IGNvbW1pdCAtbSAidXBkYXRlOiAke1RJTUVTVEFNUH0iDQpnaXQgcHVzaA0Kc2xlZXAgM3MNCmVjaG8gIkRvbmUhIENvbW1pdCR7VElNRVNUQU1QfSINCnNsZWVwIDNzDQo=|base64 -d
#!/bin/bash
TIMESTAMP=$(date +%s)

rm -rf resources/ public/ .hugo_build.lock
git add .
git commit -m "update: ${TIMESTAMP}"
git push
sleep 3s
echo "Done! Commit${TIMESTAMP}"
sleep 3s

-i该选项设置解码时忽略无法识别的字节,哪怕解码结果失真。