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 檔案。

相關內容