Linux

如何從命令行下載數據 URL?

  • December 4, 2020

我只通過瀏覽器控制台找到了執行此操作的 JavaScript 程式碼。

例如,如果我從 Google 圖片搜尋結果網格的第一張圖片中復製圖片地址,我會得到一個數據 URL。

我嘗試過的命令和錯誤:

$ curl 'data:stuff' -o filename 
**curl: (3) URL 使用錯誤/非法格式或缺少 URL**
$ curl 'data:stuff' > 文件名
**curl: (3) URL 使用錯誤/非法格式或缺少 URL**
$ wget 'data:stuff' -O filename
**解析數據(數據)...失敗:名稱或服務未知。
wget:無法解析主機地址“數據”**

如何通過命令行下載數據 URL?

data:方案在網頁上下文中是本地的,而兩者都wget可以curl處理遠端數據。也許您真正要尋找的是base64 -d允許解碼此類數據的方法。

最後,數據 URI 方案可能比您的 shell 允許的更長/更大,請參閱:https ://stackoverflow.com/a/41755526 ,我懷疑您是否希望在 shell 歷史記錄中保留這麼多隨機數據。

在Artem的答案中添加一點。

您可以通過包管理器下載 xclip 並使用 shell 腳本(您應該複製數據 URL):

#! /usr/bin/bash

data=$(xclip -out -selection clipboard)

ext=${data#*/}
ext=${ext%%;*}
ext=${ext/jpeg/jpg}

if [ $1 ]; then
       filename=$1
else
       filename=file
fi

echo "${data#*,}" | base64 -d > $filename.$ext

沒有參數文件名被保存為文件,否則它是你的第一個參數。

編輯:改進的腳本——感謝弗雷迪的精彩評論。

引用自:https://unix.stackexchange.com/questions/621732