如何在wget下载链接中处理特殊字符?

时间:2014-08-23 11:19:28

标签: linux ssh terminal

我有这样的链接:

 wget --user=user_nm --http-password=pass123 https://site.domain.com/Folder/Folder/page.php?link=/Folder/Folder/Csv.Stock.php\&namefile=STOCK.Stock.csv

但是,虽然密码授权很好,wget仍然无法处理链接。为什么呢?

1 个答案:

答案 0 :(得分:2)

从以下方式处理链接时最安全的方法浏览器使用单引号(')来引用整个链接字符串。这样shell就不会试图将其分解,而不必手动转义每个特殊字符:

wget --user=user_nm --http-password=pass123 'https://site.domain.com/Folder/Folder/page.php?link=/Folder/Folder/Csv.Stock.php&namefile=STOCK.Stock.csv'

或者,一个真实的例子:

wget --user-agent=firefox 'https://www.google.com/search?q=bash+shell+singl+quote&ie=utf-8&oe=utf-8&aq=t&rls=org.mageia:en-US:official&client=firefox-a#q=bash+single+quote&rls=org.mageia:en-US:official'

请记住,服务器端限制可能会使这样的wget非常困难。例如,Google禁止某些用户代理字符串,因此禁止使用上面的--user-agent选项。其他服务器使用cookie来维护会话信息,只是提供到wget的链接将不起作用。 YMMV。