![将输出重定向到“wget-log.1”](https://linux22.com/image/171788/%E5%B0%86%E8%BE%93%E5%87%BA%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E2%80%9Cwget-log.1%E2%80%9D.png)
我正在尝试使用此命令从 GitHub 下载 Linux 版本的 Gdrive
wget https://docs.google.com/uc?id=0B3X9GlR6EmbnWksyTEtCM0VfaFE&export=download
它被这个输出卡住了。
[1] 869 pi@raspberrypi:~ $ Redirecting output to ‘wget-log.2’
答案1
URL 中有一个 &(对于 URL 来说没什么特别的),碰巧这是 bash shell 的保留字符...它将当前命令带到后台...尝试将您的 URL 放在“”中或者用前面的 \ 来转义 &
答案2
上面的“der bender”解释了这个问题,很好的解释。
但对于解决方案,作为一般规则,请养成始终将 URL 用单引号括起来的习惯'
。它简单、简单、有效。当您复制粘贴 URL 时,您需要确保整个字符串将按原样传递到wget
(或curl
,或您正在运行的任何其他程序)。只有单引号才能做到这一点。
按照建议用双引号括起来并不理想,因为 shell 仍然会解释它,替换可能的变量,处理其他特定于 shell 的特殊字符。使用反斜杠转义&
并不理想,原因有两个:
- 你可能会忘记逃到你没有注意到的地方
- 你可能无法转义一些特殊字符,因为你不知道它们是特殊的
即使用单引号引起来,您仍然应该检查 URL 以确保其中没有任何单引号,但这是您唯一要查找的内容。 ;)