首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >焦油提取取决于文件名?

焦油提取取决于文件名?
EN

Unix & Linux用户
提问于 2011-05-18 09:53:12
回答 6查看 31.3K关注 0票数 41

我经常从sourceforge.net下载带有wget的tarball。

然后将下载的文件命名为SQliteManager-1.2.4.tar.gz?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F&ts=1305711521&use_mirror=switch

当我试图

代码语言:javascript
复制
tar xzf SQliteManager-1.2.4.tar.gz\?r\=http\:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F\&ts\=1305711521\&use_mirror\=switch

我收到以下错误消息:

代码语言:javascript
复制
tar (child): Cannot connect to SQliteManager-1.2.4.tar.gz?r=http: resolve failed

gzip: stdin: unexpected end of file
tar: Child returned status 128
tar: Error is not recoverable: exiting now

在将文件重命名为foo.tar.gz之后,提取工作非常完美。

是否有一种方法,在提取之前不强制每次重命名目标文件?

EN

回答 6

Unix & Linux用户

回答已采纳

发布于 2011-05-18 10:58:56

您所看到的错误的原因可以在文档中找到:

如果存档文件名包含冒号(‘:’),则假定它是另一台计算机...上的文件

也就是说,它将SQliteManager-1.2.4.tar.gz?r=http解释为主机名,并试图将其解析为IP地址,因此出现了“解决失败”错误。

同样的文件还说:

如果您需要使用名包含冒号的文件,则可以使用“-force-local”选项来抑制远程磁带驱动器行为。

票数 66
EN

Unix & Linux用户

发布于 2011-05-18 09:55:52

使用wget下载时,使用-O选项指定输出文件名。

代码语言:javascript
复制
wget "http://domain.com/file.tgz?crazy=args&stuff=todelete" -O file.tgz

这将导致使用给定文件名保存文件,并为您省去麻烦或重命名它。不,你并不是唯一一个希望源库不会愚蠢到发送带有url参数的文件的人。

票数 6
EN

Unix & Linux用户

发布于 2011-05-18 09:59:02

下载使用

代码语言:javascript
复制
wget --trust-server-names URL

这样wget将使用正确的文件名保存。默认情况下,它使用URL中的最后一个组件

为例

代码语言:javascript
复制
wget --trust-server-names http://sourceforge.net/projects/sqlitemanager/files/sqlitemanager/1.2.4/SQliteManager-1.2.4.tar.gz/download
票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/13377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档