我只找到了通过浏览器控制台执行此操作的 JavaScript 代码。
例如,如果我从 Google 图像搜索结果网格的第一张图像中复制图像地址,我会得到一个数据 URL。
我尝试过的命令和错误:
$curl '数据:东西' -o 文件名 curl: (3) URL 使用错误/非法格式或缺少 URL
$curl'数据:东西'>文件名 curl: (3) URL 使用错误/非法格式或缺少 URL
$ wget '数据:东西' -O 文件名 解析数据(数据)...失败:名称或服务未知。 wget:无法解析主机地址“数据”
如何通过命令行下载Data URL?
答案1
该data:
方案在网页上下文中是本地的,而两者都wget
适用curl
于远程数据。也许您真正需要的是base64 -d
能够解码此类数据。
最后,数据 URI 方案可能比 shell 允许的更长/更大,请参阅:https://stackoverflow.com/a/41755526我怀疑你想在 shell 历史记录中保留那么多随机数据。
答案2
在 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
如果没有参数,文件名将保存为文件,否则它是您的第一个参数。
编辑:改进的脚本——感谢弗雷迪的精彩评论。