Base64解码并覆盖文件

Base64解码并覆盖文件

我有一个包含 base64 编码图像数据的文件:~/dog/1.jpg

我通过 SSH 将其放在那里,并对数据进行 Base 64 编码,以便可以安全地在终端中传输。假设 Base64 图像数据未损坏。

现在我已将图像数据传递到另一台服务器,我需要解码文件内容,然后用解码后的文件覆盖编码后的文件。

我无法使用 base64 命令,因为它在远程服务器上不可用。

我怎样才能base64解码文件内容,然后用解码的内容覆盖编码的文件内容,最好使用perl?

这就是我现在所拥有的...

# Decode image data
poo=$(cat ~/dog/1.jpg | perl -MMIME::Base64 -ne 'printf "%s\n",decode_base64($_)'); 

# Write decoded data to file
echo $poo >| ~/dog/1.jpg

这会覆盖文件,但无法正确解码图像。

答案1

perl -MMIME::Base64 -i -0777ne 'print decode_base64($_)' ~/dog/1.jpg

将避免使用任何中介(无论是变量还是临时文件)并将解码的文件存储回原始 jpeg 文件。

相关内容