如何使用终端从谷歌驱动器下载文件夹?

use*_*180 83 download wget

我想使用终端从我的谷歌驱动器下载一个文件夹?有没有办法做到这一点?我试过这个:

$ wget "https://drive.google.com/folderview?id=0B-Zc9K0k9q-WWUlqMXAyTG40MjA&usp=sharing"
Run Code Online (Sandbox Code Playgroud)

但它正在下载这个文本文件:folderview?id=0B-Zc9K0k9q-WdEY5a1BCUDBaejQ&usp=sharing. 有没有办法从终端下载谷歌驱动器文件夹?

小智 58

我能够使用以下命令下载公共共享文件:

$ wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME
Run Code Online (Sandbox Code Playgroud)

whereFILEID必须替换为实际的文件 ID。FILENAME是存储下载的路径/文件名。

请注意,您不能使用文件夹 ID 代替文件 ID。我在文件夹视图中使用了查看源代码,我可以在其中找到以下 HTML <div id="entry-0B0jxxycBojSwVW...。开头的字符串0B是fileid。

  • 这对我很有用!只需要改用drive.google.com (6认同)
  • 这不再适用于谷歌驱动器...... (3认同)
  • 这不适用于较大的文件。堆栈溢出中的这个答案就像一个魅力:http://stackoverflow.com/a/32742700/4773609 (2认同)
  • 它不适用于文件夹! (2认同)
  • 老实说,我想知道当人们不断投票赞成不相关的答案时,他们会怎么想。OP 要求的是文件夹而不是文件 (2认同)

Utg*_*rda 14

一个更新的、开源的多平台客户端,用 Go 编写,叫做drive,非常好,功能齐全,而且还在积极开发中。

例子

pull 命令从 Google Drive 下载本地不存在的数据,并删除 Google Drive 上不存在的本地数据。不带任何参数运行它以从当前路径中提取所有文件:

$ drive pull
Run Code Online (Sandbox Code Playgroud)

也支持通过火柴拉

$ cd ~/myDrive/content/2015
$ drive pull --matches vines docx
Run Code Online (Sandbox Code Playgroud)

有关更多示例,请参见上面的链接,这些只是冰山一角。

  • 此工具自 2017 年 9 月起不再维护 (4认同)
  • 是的,但它仍然有效,下载整个目录是最好的解决方案:`drive pull 'Colab Notebooks/sorted/models/resnet-101-90.9-max-acc'`。其他方法很麻烦。 (2认同)
  • `gdrive` 是当前最新的解决方案,也是用 Go 编写的,甚至比上面的更容易 https://github.com/prasmussen/gdrive 例如,要下载一个文件夹,您可以执行 `gdrive download --recursive FOLDER_ID_FROM_URL`,无需配置,它会要求您提供凭据。 (2认同)

Fra*_*urt 12

2 个有用的 Python 程序(需要:)sudo apt install -y python3 python3-pip

  • gdown : 从 Google Drive 下载一个大文件 public (curl/wget 由于安全通知失败)。 pip install gdown
  • gshell:像在 shell 上一样在 Google Drive 中导航(gshell = Google Drive + Shell)。pip install gshell(可能已停产

要上传到 GDrive,可以使用https://labbots.github.io/google-drive-upload/


例子:

要从 Google Drive (5 GB) 下载 1 个公共大文件:

# syntax: gdown https://drive.google.com/uc?id=FILE-ID
gdown https://drive.google.com/uc?id=1LC5iVcvgksQhNVJ-CbMigqXnPAaquiA2
Run Code Online (Sandbox Code Playgroud)

下载 1 个文件夹:

gshell init              # log in to your Google account 
gshell ll                # list files
gshell download spam.txt # download file -> you could script to download all files listed by gshell ll
Run Code Online (Sandbox Code Playgroud)

我在用gdown,效果很好。我还没有试过gshell

请注意,如果gdown在 24 小时内使用超过 20 次(可能取决于文件大小),我们会收到错误消息:

访问被拒绝,错误如下:

  Too many users have viewed or downloaded this file recently. Please
  try accessing the file again later. If the file you are trying to
  access is particularly large or is shared with many people, it may
  take up to 24 hours to be able to view or download the file. If you
  still can't access a file after 24 hours, contact your domain
  administrator.
Run Code Online (Sandbox Code Playgroud)

您仍然可以从浏览器访问该文件:

    https://drive.google.com/uc?id=1LC5iVcvgksQhNVJ-CbMigqXnPAaquiA2
Run Code Online (Sandbox Code Playgroud)

  • 这绝对是一个魅力,谢谢!这很快很简单,IMO 绝对应该是一个可以接受的答案。我想也许障碍是必须安装 python,而不是更直接的本机 CLI 程序(但你的指令是直接复制和粘贴的) (2认同)

小智 11

ubuntu 17.04 仓库中有一个巨大的程序叫做:rclone

$ sudo apt update && sudo apt install rclone

$ rclone config --> than follow the steps to setup your gdrive
Run Code Online (Sandbox Code Playgroud)

现在您可以 rclone 复制和同步您想要的一切。项目支持各种云..fe:

$ rclone sync /home/<usrname>/Desktop/yourfolder gdrivename:yourfolder
Run Code Online (Sandbox Code Playgroud)

[1]:https://rclone.org

(顺便说一句,我上传了大约 600GB,并在几个小时内使用 rclone 从 gdrive 传输了 1TB,将 gdrive 传输到了 ubuntu,从 ubuntu 传输到了 gdrive ......并且它连续数周都运行良好!

https://forum.rclone.org/t/can-copy-between-google-drive-accounts-without-download-and-upload-files/969/8
Run Code Online (Sandbox Code Playgroud)

)


arn*_*efm 8

wget只能处理直接链接,但这不是这里的主要问题。Google 云端硬盘希望您在下载文件之前进行身份验证。这意味着您必须使用网络浏览器来下载文件。终端有几个网络浏览器,lynx就是一个例子。

如果您选择公开共享您的文件(以便任何人都可以下载它),您可以使用众多 Google Drive 永久链接服务之一。我相信这些应该会产生可以与 wget 一起使用的链接。这是我在搜索信息时找到的两个列表:http : //gdriveurl.com/ http://gdurl.com/

假设您正在运行 Linux,那么Google Drive 的开源客户端可能值得研究。


小智 8

如果您使用 Firefox,您可以尝试安装 cliget 插件。对于您要下载的每个文件,程序向您显示用于下载该文件的 curl、wget 或 aria2 直接链接。我使用它通过 ssh 下载其他机器上的文件,因为直接下载到远程计算机然后从我的计算机上传该文件要快得多。这也适用于 dropbox、gdrive 等。


tan*_*ius 8

您可以使用开源 Linux/Unix 命令行工具gdrive

要安装它:

  1. 下载二进制文件。例如,选择适合您的架构的一种gdrive-linux-x64

  2. 将其复制到您的路径。

    sudo cp gdrive-linux-x64 /usr/local/bin/gdrive;
    sudo chmod a+x /usr/local/bin/gdrive;
    
    Run Code Online (Sandbox Code Playgroud)

要使用它:

  1. 确定 Google Drive 文件夹的 ID。为此,请使用 drive.google.com Web 客户端进入要下载的文件夹。现在查看浏览器地址栏中的 URL,它会显示类似https://drive.google.com/drive/folders/0B7_OwkDsUIgFWXA1B2FPQfV5S8H. 获取最后一个后面的字符串/并将其复制到剪贴板。那是文件夹的ID。

  2. 下载文件夹。当然,请在以下命令中使用您的文件夹 ID。

    gdrive download --recursive 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
    
    Run Code Online (Sandbox Code Playgroud)

首次使用时,该工具需要获得对 Google Drive API 的访问权限。为此,它会向您显示一个您必须在浏览器中访问的链接,然后您将获得一个验证码以复制并粘贴回该工具。下载然后自动开始。没有进度指示器,但您可以在文件管理器或第二个终端中观察进度。

来源: Tobi在 stackoverflow.com 问题中的评论。答案改编自我那边的类似答案

  • 无法获得许可?暂时禁用此应用程序的 Google 登录 此应用程序尚未通过 Google 验证才能使用 Google 登录。 (5认同)
  • 此处相同:“为此应用暂时禁用了使用 Google 登录” (2认同)