“ 除了文件的基础相关操作以外,我们日常使用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
然后只需要等待
,一会就下好了。
如果我们使用-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强行终止
我们可以看到下载停止了,但是文件只下了一半,这该怎么办呢?不要怕,断点续传来帮你处理。
# 开始断点续传
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搜索,”轻松玩转生信“或者从下面文章进去获取二维码关注哦