wget指令
最近在用谷歌云盘下载较大的数据集的时候,发现常常因为下载文件过大,无法直接用wget下载,多方查找资料之后确定了一个可行的路径,分享给大家,也作为记录方便自己日后查阅。
如果用代码块的形式打出来会导致指令无法在一屏内看全,所以直接按照正常的文字打出。
大文件
wget --load-cookies /tmp/cookies.txt “https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate ‘https://docs.google.com/uc?export=download&id=FILEID’ -O- | sed -rn ‘s/.confirm=([0-9A-Za-z_]+)./\1\n/p’)&id=FILEID” -O FILENAME && rm -rf /tmp/cookies.txt
注意里面有两个参数:
FILENAME:存储名称,即在你本地下载文件之后该文件将会被命名为FILENAME
FILEID:文件代码,每个谷歌云盘链接都会有一串字符串,例如对于谷歌网盘链接:
https://drive.google.com/file/d/1UibyVC_C2hoT_XEw15gPEwPW4yFyJFeOEA/view?usp=sharing
或者
https://drive.google.com/u/0/open?id=0B-Fin8UxrD6POTBsR2d2T3MzTjg
里面的 1UibyVC_C2hoT_XEw15gPEwPW4yFyJFeOEA 或 0B-Fin8UxrD6POTBsR2d2T3MzTjg 这段代码就是我们需要的信息。
例如用上面第一个链接作为例子的指令为:
wget --load-cookies /tmp/cookies.txt “https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate ‘https://docs.google.com/uc?export=download&id=1UibyVC_C2hoT_XEw15gPEwPW4yFyJFeOEA’ -O- | sed -rn ‘s/.confirm=([0-9A-Za-z_]+)./\1\n/p’)&id=FILEID” -O downloadfile && rm -rf /tmp/cookies.txt
即可在当前路径下载文件并命名为downloadfile
小文件
可以采用 wget+谷歌云盘链接的方式,如果无法下载,则可采用下面的方法:
wget --no-check-certificate ‘https://docs.google.com/uc?export=download&id=FILEID’ -O FILENAME