wget http://www.vim.org/scripts/download_script.php?src_id=11834 -O temp.zip; unzip temp.zip
有效,但如果我下载的文件不是zip,那么它需要保留原始名称而不是temp.zip
。例如,它被称为temp.7z
,而不是temp.zip,因此不可能在bash中解压缩它。因此,如果文件是7z,那么下载后不要让wget将其重命名为temp.zip。我想过这样的东西,但你无法获得用wget下载的文件名。
filename = wget http://www.vim.org/scripts/download_script.php?src_id=11834
unzip filename || echo "Must be a .zip file in order to unzip it!"
但这显然不起作用,因为如果你没有给它一个文件名来保存文件或目录(我认为(,wget就不会麻烦下载文件,并且会出现以下错误:
unzip: cannot find or open wget, wget.zip or wget.ZIP.
使用file
命令用临时名称和测试文件类型保存下载的文件
t="$(file --brief --mime-type file.tmp)"
case "$t" in
'application/zip')
echo "zip file"
;;
'application/x-7z-compressed')
echo "7z file"
;;
*)
echo "unknown file type"
;;
esac
(…(wget如果您没有给它一个文件名保存为或目录(我认为((…(
这不是真的,wget
使用从给定URL生成的名称下载文件。在这种特殊情况下,
wget http://www.vim.org/scripts/download_script.php?src_id=11834
将文件下载为download_script.php@src_id=11834
,正如您可能观察到的,它是从上一个/
之后的部分派生而来的,但不是您想要的。然而,在这样的链接的情况下,通常会有Content-Disposition
标签通知web浏览器文件的名称,就像wget
手册页通知您在进行时可能会使用--content-disposition
标志来使wget
使用它一样
wget --content-disposition http://www.vim.org/scripts/download_script.php?src_id=11834
文件将作为NERD_tree.zip
下载