Linux系列6 | 下载文件详解

除了文件的基础相关操作以外,我们日常使用Linux还需要什么呢?那肯定就是下载文件和压缩(解压缩)文件了。

上一期中,我们讲解了如何更加优雅的查看文件,但是很多时候我们还不仅限与对文件查看,很多大文件我们都需要对它进行压缩处理,而有些来自互联网的文件我们则需要对它进行解压缩操作,而互联网的文件我们多数是需要进行下载的。

所以今天,我们的主要学习内容就是对文件的下载操作,如何更优雅的从互联网下载文件,如何下载多个文件,断点续传以及后台下载等等

下载文件 - wget

在我们的日常使用中,尤其是进行二次分析的时候,我们常常需要进行大量的数据下载,绝大多数数据库也都会提供ftp的下载接口,但是直接下到windows里然后在传到服务器又非常的麻烦,尤其是超级大的文件,windows的硬盘资源都有些不够用的文件,我们更是需要使用linux直接进行下载,那么我们应该如何去在命令行状态下下载文件呢?

这就要使用到我们的wget命令了。
wget:使用wget从网上下载数据,可以充当功能完备的下载器

下面来讲解一下wget的使用,作为一个下载器,首先得有什么需要下载的东西啦,我在这里随便找了点数据,地址在code中给出,如果想下载自己的数据也可以哦。

cd ~
mkdir dn
cd dn
# address:https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF292AVT_peaks_hg19.bigBed
# 最简单的下载方法
wget https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF292AVT_peaks_hg19.bigBed

然后只需要等待


image.png

,一会就下好了。

如果我们使用-O参数可以指定下载内容的名字,一定要注意,是-O不是-o
( -o 参数是保存下载日志文件的文件名 )

# 指定下载内容的名字
wget -O G92.bigBed https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF292AVT_peaks_hg19.bigBed
# 指定日志文件输出到w1.log
wget -o w1.log -O G92.bigBed https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF292AVT_peaks_hg19.bigBed

这就是基本的文件下载操作了,是不是很简单呢?

多个文件下载

在讲解了基础的文件下载以后,我们要开始进一步的讲解如何下载多个文件,毕竟我们不可能等着文件一个一个的下载吧,那多浪费时间啊。

进行多个文件下载需要自己建立一个文件,存着每个需要下载的文件的url,然后传给wget,它就会自动给你下载了。

# 建立下载文件的目录
vim dnlist
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF575WAS_peaks_hg19.bed.gz
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF851UBQ_peaks_GRCh38.bed.gz
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF349LKU_replicated_peaks_GRCh38.bed.gz
图片

有了下载的url列表以后,我们就可以进行下载了

# 多个文件下载
 wget -i dnlist -o mulitdn.log
 ls
图片

我们可以看到下载已经成功了,这就是多文件下载的操作。

断点续传

除了多文件下载,我们的wget还支持断点续传功能。至于断点续传是什么意思呢,说白了就是你下了一半出了问题,比如停电了或者突然断网了,然后下载停止。等一切就绪以后,你又想继续下载,这个时候还能接上之前下载的地方继续下,这就是-c参数的断点续传功能。有了它,妈妈再也不怕我断网重新下数据了。

# 使用断点续传
 wget -i dnlist
# 第一个文件下载一半的时候ctrl+C强行终止
image.gif

我们可以看到下载停止了,但是文件只下了一半,这该怎么办呢?不要怕,断点续传来帮你处理。

# 开始断点续传
wget -c -i dnlist
图片

看到加号了吗,wget会自动识别你运行到了哪里,然后从中止的点进行继续下载,直到下载结束。

后台下载

上面讲的内容都是关于直接进行下载的,但是我们很多时候不想直接进行下载,因为大家的时间都很宝贵,不能每天盯着下载过程摸鱼是吧,所以我们就需要这终极神器,-b后台下载操作

其实你使用nohup进行后台下载也可以,不过既然有wget自己提供的,又何必去用nohup呢。下面来介绍一下后台下载功能,以及查看下载进度。

# 使用后台下载功能
wget -b -i dnlist -o w.log
图片

这里会提示这么一句话,然后就又回到了命令行,你就可以做自己的事情了。
如果你想看看下载的怎么样了,你可以使用上节课学过的tail命令来查看日志文件

# tail
tail -f w.log
图片

他就会不断的显示下载的程度了,当你不想看了就ctrl+C停止就可以了。

最后就是如果你不想下了,你该怎么做呢,由于wget已经转向了后台,但是它把进程号给你了,没错,就是上面的pid后面的值,你只需要使用kill命令杀死它即可。

# 终止下载 (超级强行的终止哦)
kill -9 <pid>

上面就是关于下载的所有重点知识了,相信看了今天的内容,你再也不会因为在Linux上下载任何内容而感到苦恼了,因为这一切对你来说都是非常容易的事。

这一节课也比较简单,大家随便练习一下就可以

# 下载下面链接的文件 并命名为Gp.bigbed
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF292AVT_peaks_hg19.bigBe
# 一次性在后台下载下面的所有文件
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF090AXY_replicated_peaks_hg19.bigBed
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE96nnn/GSE96299/suppl/GSE96299_ENCFF292AVT_peaks_hg19.bigBed

下面一节课的内容也是非常非常通用的操作内容,关于文件的压缩和打包,如果你对gz bz2以及各种tar cvxfzj的参数感到头疼,我相信你看了我下一篇推文就一定了解了,再也不是看到参数就只会用的人了,而是根据自己的需求去修改和变更参数了。

如果你喜欢我的文章,请收藏我的文章并且给我个赞,你的支持就是我更新的最大的动力,关注我会有更多惊喜哦,专注于生物信息学以及数据分析入门和进阶教程,也许我给不了你从10-100,但是我可以给你最好的从0-10!

最后,关注我的公众号,领取更多学习资料吧!!!

打开v搜索,”轻松玩转生信“或者从下面文章进去获取二维码关注哦

二维码传送门

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容