尝试通过CMD行下载文件,但文件名中有空格阻止下载。
curl --request GET -v --user user$site:password https://www.whatever.com/uploads/Filename With Spaces.csv > /users/kanye_west/desktop/FilenameWithSpaces.csv
尝试使用反斜杠\
转义空格已经无效
答案 0 :(得分:2)
将网址放在引号中。
curl --request GET -v --user user$site:password "https://www.whatever.com/uploads/Filename With Spaces.csv" > /users/kanye_west/desktop/FilenameWithSpaces.csv
反斜杠可以在Unix上运行,但它们不能用作Windows上的转义字符,因为它们是目录分隔符的原始形式。
答案 1 :(得分:0)
这是编码网址的廉价技巧。它编码的不仅仅是空格。
urlencode() {
# urlencode <string>
local length="${#1}"
for (( i = 0; i < length; i++ )); do
local c="${1:i:1}"
case $c in
[a-zA-Z0-9.~_-:/]) printf "$c" ;;
*) printf '%%%x' \'"$c" ;;
esac
done
}
然后,您可以在传递给curl
之前使用此功能转换您的网址。
curl --request GET -v --user user$site:password $(urlencode "https://www.whatever.com/uploads/Filename With Spaces.csv") > /users/kanye_west/desktop/FilenameWithSpaces.csv
答案 2 :(得分:0)
用%20替换每个空格
curl --request GET -v --user user$site:password https://www.whatever.com/uploads/Filename%20With%20Spaces.csv > /users/kanye_west/desktop/FilenameWithSpaces.csv