原文: https://www.tecmint.com/download-and-extract-tar-files-with-one-command/

在Linux中Tar是一种常用的文件打包格式。它可以配合压缩工具gzip形成tar.gz,或者配合bzip2形成tar.bz2。它在创建压缩文件中应用广泛。可以轻松的在网络中传输文件。

  1. 使用wget

    下面的例子展示如何下载并解压最新的Geolite2国家数据库(用于nginx的GeoIP模块)到当前目录
    wget -c http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz -O - | tar -xz

    • -O 参数表明存储文件位置,对应的-表示存储到标准输出。此处使用管道的形式传递给tar进行处理
    • -c 和断点续传一个意思。不过只下载一次,感觉这里没啥子用
    • tar -x表示解压
    • z 表示使用gzip格式解压
    • 当为一个文件的时候是不需要指定解压格式的。直接tar -xf就可以解压文件了,此处是因为文件是使用流形式传递。所以必须手动指定解压格式,tar无法自动猜测

    另外,如果你希望将压缩文件保存到本地同时进行解压操作,替换成下面的命令就可以了.如果有sudo需求就加上

    sudo wget -c http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz && tar -xzf  GeoLite2-Country.tar.gz
    
  2. 使用curl

    wget的默认行为是保存下载内容到文件,curl的默认行为是输出到标准输出,wget有个牛X的行为是扒站。curl的特色是支持灰常多的下载传输协议。同时curl的代理也比wget要强一点。它支持socks5.

    既然默认输出下载内容到标准输出。那么实际就是换汤不换药 sudo curl http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz | tar -xz

    说一说如何保存curl下载的文件

    • O 大写的O和wget默认的逻辑一样。自己猜
    • o 小写的O,则是自己指定保存的文件名

results matching ""

    No results matching ""