Ubuntu终端下载Google Drive文件失败求助
解决Google Drive共享文件夹wget下载失败的问题
你好呀!我看你尝试用wget下载Google Drive里的共享文件夹,但试了好几个Stack Overflow的方案都没成功,下载的都是0K到3.1K的小文件,根本不是需要的zip包对吧?这问题其实很常见,我来帮你理清楚原因和解决办法。
核心问题:你用的是文件夹链接,不是单个文件的下载链接
你之前参考的所有方案都是针对单个Google Drive文件的,但你现在要下载的是一整个文件夹。直接用文件夹链接跑wget/curl命令,得到的只是Google Drive文件夹页面的HTML代码(就是那些几K大小的文件),自然不是你要的压缩包。
解决方案
根据你的需求,我给你推荐几个靠谱的方法,按简单程度排序:
方法1:用专门的Google Drive下载工具gdown(最省心)
这个工具是专门为Google Drive下载设计的,能直接处理文件夹,不需要手动折腾链接:
- 先安装gdown(需要Python环境):
pip install gdown
- 直接用文件夹链接下载整个文件夹:
gdown --folder https://drive.google.com/drive/folders/1_cQXGzqzbF5eL_UmITdZqlEAM7_rgI4c
它会自动遍历文件夹里的所有文件,逐个下载到本地,完全不用你管验证或者链接转换的问题。
方法2:把文件夹打包成zip后,用wget下载单个zip包
如果你一定要用wget,可以先把文件夹转成单个zip文件再下载:
- 打开你提供的Google Drive文件夹链接,确保你有访问权限(如果提示需要请求访问,先申请并获得权限)
- 在文件夹页面,点击右上角的「下载」按钮(或者右键文件夹选择「下载」),浏览器会自动把整个文件夹打包成zip
- 这时候你可以在浏览器的下载记录里找到这个zip的真实下载链接,然后用wget命令下载这个链接就行。如果文件太大,浏览器打包失败,就换方法1。
方法3:手动获取单个文件的wget下载链接(适合只需要文件夹里某几个文件的情况)
如果只需要文件夹里的单个zip文件,你可以按以下步骤构造正确的wget命令:
- 打开那个zip文件的页面,右键点击「获取链接」,设置权限为「知道链接的任何人都可以查看」
- 复制链接,比如类似
https://drive.google.com/file/d/XXXXXX/view?usp=sharing,提取其中的XXXXXX(这是文件ID) - 用下面的wget命令下载(把
文件ID换成你提取的ID,文件名.zip换成你想要的本地文件名):
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=文件ID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=文件ID" -O 文件名.zip && rm -rf /tmp/cookies.txt
这个命令会处理Google Drive的验证步骤,能正确下载大文件,不会再得到几K的网页文件。
内容的提问来源于stack exchange,提问作者ADGB
相关产品推荐
相关产品推荐

