我如何知道是否可以使用wget解压缩文件


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下载

相关内容

  • 没有找到相关文章

最新更新