我有一个这样的网址:
http://dl.minitoons.ir/longs/Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar
Run Code Online (Sandbox Code Playgroud)
我想使用wget. 如果我直接将其传递给wget,则一切顺利。但是我的情况是我只有下载 URL 的编码版本。如果我将上述 URL 的编码版本传递给wget,则会引发以下错误:
$ wget "http%3A%2F%2Fdl.minitoons.ir%2Flongs%2FKhumba%20(2013)%20%5BEN%5D%20%5BBR-Rip%20720p%5D%20-%20%5Bwww.minitoons.ir%5D.rar"
wget: unable to resolve host address `http://dl.minitoons.ir/longs/khumba (2013) [en] [br-rip 720p] - [www.minitoons.ir].rar'
Run Code Online (Sandbox Code Playgroud)
请注意,wget更改了 URL 的大小写(例如Khumba更改为khumba)。我应该怎么做才能解决这个问题?
Wil*_*ilf 20
由于这很烦人,因此有各种可用的转换器 - 例如这个站点。您可以使用这些来解码 URL - 因此它将转换为:
http%3A%2F%2Fdl.minitoons.ir%2Flongs%2FKhumba%20(2013)%20%5BEN%5D%20%5BBR-Rip%20720p%5D%20-%20%5Bwww.minitoons.ir%5D.rar
Run Code Online (Sandbox Code Playgroud)
到:
http://dl.minitoons.ir/longs/Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar
Run Code Online (Sandbox Code Playgroud)
虽然有一个命令行版本会很好......
找到一个命令行版本 - 基本上:
echo "http%3A%2F%2F-REST-OF-URL" | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e
Run Code Online (Sandbox Code Playgroud)
这可以在这样的脚本中实现以解码 URL:
#!/bin/bash
echo "$@" | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e
exit
Run Code Online (Sandbox Code Playgroud)
如果保存并使其可执行,则效果很好。
还有这个脚本,它也将下载 UL:
#!/bin/bash
echo "$@" | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e | wget -c -i -
exit
Run Code Online (Sandbox Code Playgroud)
注意,我认为 URL 所在的情况对于大多数站点来说并不重要 - 例如HTTP://WWW.UBUNTU.COM
你应该像这样使用它
wget "http://dl.minitoons.ir/longs/Khumba%20(2013)%20[EN]%20[BR-Rip%20720p]%20-%20[www.minitoons.ir].rar"`
Run Code Online (Sandbox Code Playgroud)
只需将每个空格替换为%20. 或者更好地复制您的原始链接并将其粘贴到 Chromium 浏览器地址栏中。它会自动为您格式化。现在将它从那里复制到您的终端。