wget和curl输出"No such file or directory"

5
wget https://some.url/with/a/file.txt

尽管 (可以通过浏览器下载) file.txt 存在于该位置,但返回 No such file or directory。同时,运行该命令的用户具有写入所保存目录的权限。

StackOverflow致力于帮助解决编程代码问题。你的问题可能更适合[su],但请阅读他们关于问题主题的帮助部分。在此发布更多问题之前,请阅读Help On-topicHelp How-to-ask。祝你好运。 - shellter
这个回答解决了你的问题吗?Shell脚本对编码和行结尾敏感吗? - tripleee
3个回答

22

有很多相关的帖子,但都没有帮助。

最后发现URL前面存在非法字符

这个问题难以找到,我在这里发布以防有人遇到同样的问题。


1
能详细说明一下吗?哪个是非法字符? - Eric Wolf
2
抱歉,我只记得它不是“可见”的,所以我认为它必须是U+FEFF或其中之一:U+200B、U+200C、U+200D、U+200E、U+200F。 - steros
2
这种情况发生在我将curl命令从另一个应用程序复制到终端时。在终端提示符处,我不得不删除空格并重新插入它们才能使其正常工作。感谢您的建议。 - vegemite4me
刚刚在尝试安装lgpio时遇到了这个问题...从他们的网站示例中复制并粘贴(即使它看起来像是在代码框中)。删除wget和URL之间的空格并替换...嘭,就可以正常工作了。花了我太长时间才找到这个解决方案,所以感谢Steros三年后提供的帮助。 - evildemonic

1

关闭终端并尝试再次运行脚本。


我不知道我的会话出了什么问题,但重新打开一个新的会话并执行相同的命令(因为它是从历史记录中复制的,所以是一样的)就可以正常工作了。 - undefined

0

在使用curl时,我遇到了类似的问题。

对我来说,根本原因是curl无法找到目标目录。

--create-dirs添加到命令中,将会要求curl在目录不存在时创建目录,这解决了我的问题。

例如:

# I want to download this file to ~/development/csvs/saved_file.csv
# Assume I am executing from a ~/development/ directory, which has no csv dir

# this will not work
curl 'https://bla.com/cool_csv.csv' > csvs/saved_file.csv

# this will work
curl 'https://bla.com/cool_csv.csv' -o csvs/saved_file.csv --create-dirs

-o会取代>并指定输出

参考问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接