我尝试了以下操作:
[$] wget http://cdn.edgecast.steamstatic.com/steam/apps/256679148/movie480.webm > Conan1.webm
[1:21:05]
--2017-02-23 01:51:50-- http://cdn.edgecast.steamstatic.com/steam/apps/256679148/movie480.webm
Resolving cdn.edgecast.steamstatic.com (cdn.edgecast.steamstatic.com)... 117.18.232.131
Connecting to cdn.edgecast.steamstatic.com (cdn.edgecast.steamstatic.com)|117.18.232.131|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11255413 (11M) [video/webm]
Saving to: ‘movie480.webm’
movie480.webm 100%[===================================================================>] 10.73M 33.7KB/s in 6m 25s
2017-02-23 01:58:16 (28.6 KB/s) - ‘movie480.webm’ saved [11255413/11255413]
可以看出,命令的第一部分有效,wget 下载了文件,但命令的第二部分重命名了文件,在本例中下载的是非常通用的 movie480.webm。为什么不是 conan1.webm ,我建议它采用的名称。
我确实知道如果我这么做了——
$ mv movie480.webm conan1.webm
那么它就可以工作,但这意味着一个额外的命令。为什么失败了?尽管与上面所示类似,是否还有另一种方法可以在单个命令中执行相同的操作?
答案1
您没有“建议它采用”名称Conan1.webm
,而是将其标准输出流重定向到名为Conan1.webm
.由于wget
默认情况下不写入标准输出,因此这对内容的保存位置没有影响。
请参阅man wget
- 特别是-O
选项:
-O file
--output-document=file
The documents will not be written to the appropriate files, but all
will be concatenated together and written to file. If - is used as
file, documents will be printed to standard output, disabling link
conversion. (Use ./- to print to a file literally named -.)
所以你可以使用
wget -O Conan1.webm http://cdn.edgecast.steamstatic.com/steam/apps/256679148/movie480.webm
或者
wget -O- http://cdn.edgecast.steamstatic.com/steam/apps/256679148/movie480.webm > Conan1.webm
答案2
将符号更改>
为-O
.>
用于将命令通常打印到屏幕的文本(更准确地说,只是其标准输出)重定向到文件。使用创建的文件>
包含通常打印到屏幕上的文本。