我想使用终端从我的谷歌驱动器下载一个文件夹?有没有办法做到这一点?我试过这个:
$ 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。
Utg*_*rda 14
一个更新的、开源的多平台客户端,用 Go 编写,叫做drive,非常好,功能齐全,而且还在积极开发中。
pull 命令从 Google Drive 下载本地不存在的数据,并删除 Google Drive 上不存在的本地数据。不带任何参数运行它以从当前路径中提取所有文件:
Run Code Online (Sandbox Code Playgroud)$ drive pull也支持通过火柴拉
Run Code Online (Sandbox Code Playgroud)$ cd ~/myDrive/content/2015 $ drive pull --matches vines docx
有关更多示例,请参见上面的链接,这些只是冰山一角。
Fra*_*urt 12
2 个有用的 Python 程序(需要:)sudo apt install -y python3 python3-pip:
pip install gdownpip 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 次(可能取决于文件大小),我们会收到错误消息:
访问被拒绝,错误如下:
Run Code Online (Sandbox Code Playgroud)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
小智 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)
(顺便说一句,我上传了大约 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)
)
wget只能处理直接链接,但这不是这里的主要问题。Google 云端硬盘希望您在下载文件之前进行身份验证。这意味着您必须使用网络浏览器来下载文件。终端有几个网络浏览器,lynx就是一个例子。
如果您选择公开共享您的文件(以便任何人都可以下载它),您可以使用众多 Google Drive 永久链接服务之一。我相信这些应该会产生可以与 wget 一起使用的链接。这是我在搜索信息时找到的两个列表:http : //gdriveurl.com/ http://gdurl.com/
假设您正在运行 Linux,那么Google Drive 的开源客户端可能值得研究。
小智 8
如果您使用 Firefox,您可以尝试安装 cliget 插件。对于您要下载的每个文件,程序向您显示用于下载该文件的 curl、wget 或 aria2 直接链接。我使用它通过 ssh 下载其他机器上的文件,因为直接下载到远程计算机然后从我的计算机上传该文件要快得多。这也适用于 dropbox、gdrive 等。
您可以使用开源 Linux/Unix 命令行工具gdrive。
要安装它:
下载二进制文件。例如,选择适合您的架构的一种gdrive-linux-x64。
将其复制到您的路径。
sudo cp gdrive-linux-x64 /usr/local/bin/gdrive;
sudo chmod a+x /usr/local/bin/gdrive;
Run Code Online (Sandbox Code Playgroud)要使用它:
确定 Google Drive 文件夹的 ID。为此,请使用 drive.google.com Web 客户端进入要下载的文件夹。现在查看浏览器地址栏中的 URL,它会显示类似https://drive.google.com/drive/folders/0B7_OwkDsUIgFWXA1B2FPQfV5S8H. 获取最后一个后面的字符串/并将其复制到剪贴板。那是文件夹的ID。
下载文件夹。当然,请在以下命令中使用您的文件夹 ID。
gdrive download --recursive 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
Run Code Online (Sandbox Code Playgroud)首次使用时,该工具需要获得对 Google Drive API 的访问权限。为此,它会向您显示一个您必须在浏览器中访问的链接,然后您将获得一个验证码以复制并粘贴回该工具。下载然后自动开始。没有进度指示器,但您可以在文件管理器或第二个终端中观察进度。
来源: Tobi在 stackoverflow.com 问题中的评论。答案改编自我那边的类似答案。