gdrv-cli

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Google Drive CLI

Google Drive CLI

Manage Google Drive using the
gdrv
command-line tool.
使用
gdrv
命令行工具管理Google Drive。

Prerequisites

前置要求

Ensure gdrv is installed and authenticated:
bash
gdrv --version

export GDRV_CLIENT_ID="your-client-id"
export GDRV_CLIENT_SECRET="your-client-secret"
gdrv auth login --preset workspace-full
确保已安装gdrv并完成身份验证:
bash
gdrv --version

export GDRV_CLIENT_ID="your-client-id"
export GDRV_CLIENT_SECRET="your-client-secret"
gdrv auth login --preset workspace-full

File Operations

文件操作

bash
gdrv files list --json
gdrv files list --paginate --json
gdrv files list --query "name contains 'report'" --order-by "modifiedTime desc" --json
gdrv files upload myfile.txt --json
gdrv files download FILE_ID --output downloaded.txt
gdrv files download FILE_ID --doc
gdrv files delete FILE_ID --dry-run
gdrv files delete FILE_ID
gdrv files trash FILE_ID
gdrv files restore FILE_ID
bash
gdrv files list --json
gdrv files list --paginate --json
gdrv files list --query "name contains 'report'" --order-by "modifiedTime desc" --json
gdrv files upload myfile.txt --json
gdrv files download FILE_ID --output downloaded.txt
gdrv files download FILE_ID --doc
gdrv files delete FILE_ID --dry-run
gdrv files delete FILE_ID
gdrv files trash FILE_ID
gdrv files restore FILE_ID

Folder Operations

文件夹操作

bash
gdrv folders create "My Folder" --json
gdrv folders list FOLDER_ID --json
gdrv folders delete FOLDER_ID
gdrv folders move FILE_ID PARENT_ID
bash
gdrv folders create "My Folder" --json
gdrv folders list FOLDER_ID --json
gdrv folders delete FOLDER_ID
gdrv folders move FILE_ID PARENT_ID

Permissions

权限管理

bash
gdrv permissions list FILE_ID --json
gdrv permissions create FILE_ID --type user --email user@example.com --role reader
gdrv permissions create FILE_ID --type user --email user@example.com --role writer
gdrv permissions public FILE_ID
gdrv permissions delete FILE_ID PERMISSION_ID
bash
gdrv permissions list FILE_ID --json
gdrv permissions create FILE_ID --type user --email user@example.com --role reader
gdrv permissions create FILE_ID --type user --email user@example.com --role writer
gdrv permissions public FILE_ID
gdrv permissions delete FILE_ID PERMISSION_ID

Google Sheets

Google Sheets操作

bash
gdrv sheets list --json
gdrv sheets list --paginate --json
gdrv sheets create "My Sheet" --json
gdrv sheets create "My Sheet" --parent FOLDER_ID --json
gdrv sheets get SHEET_ID --json
gdrv sheets values get SHEET_ID "Sheet1!A1:B10" --json
gdrv sheets values update SHEET_ID "Sheet1!A1:B2" --values '[[1,2],[3,4]]'
gdrv sheets values update SHEET_ID "Sheet1!A1" --values-file data.json --value-input-option USER_ENTERED
gdrv sheets values append SHEET_ID "Sheet1!A1" --values '[[5,6]]'
gdrv sheets values clear SHEET_ID "Sheet1!A1:B10"
gdrv sheets batch-update SHEET_ID --requests-file batch-update.json
bash
gdrv sheets list --json
gdrv sheets list --paginate --json
gdrv sheets create "My Sheet" --json
gdrv sheets create "My Sheet" --parent FOLDER_ID --json
gdrv sheets get SHEET_ID --json
gdrv sheets values get SHEET_ID "Sheet1!A1:B10" --json
gdrv sheets values update SHEET_ID "Sheet1!A1:B2" --values '[[1,2],[3,4]]'
gdrv sheets values update SHEET_ID "Sheet1!A1" --values-file data.json --value-input-option USER_ENTERED
gdrv sheets values append SHEET_ID "Sheet1!A1" --values '[[5,6]]'
gdrv sheets values clear SHEET_ID "Sheet1!A1:B10"
gdrv sheets batch-update SHEET_ID --requests-file batch-update.json

Google Docs

Google Docs操作

bash
gdrv docs list --json
gdrv docs list --paginate --json
gdrv docs create "My Doc" --json
gdrv docs create "My Doc" --parent FOLDER_ID --json
gdrv docs get DOC_ID --json
gdrv docs read DOC_ID
gdrv docs read DOC_ID --json
gdrv docs update DOC_ID --requests-file updates.json
bash
gdrv docs list --json
gdrv docs list --paginate --json
gdrv docs create "My Doc" --json
gdrv docs create "My Doc" --parent FOLDER_ID --json
gdrv docs get DOC_ID --json
gdrv docs read DOC_ID
gdrv docs read DOC_ID --json
gdrv docs update DOC_ID --requests-file updates.json

Google Slides

Google Slides操作

bash
gdrv slides list --json
gdrv slides list --paginate --json
gdrv slides create "My Presentation" --json
gdrv slides create "My Presentation" --parent FOLDER_ID --json
gdrv slides get PRESENTATION_ID --json
gdrv slides read PRESENTATION_ID
gdrv slides read PRESENTATION_ID --json
gdrv slides update PRESENTATION_ID --requests-file updates.json
gdrv slides replace PRESENTATION_ID --data '{"{{NAME}}":"Alice","{{DATE}}":"2026-01-24"}'
gdrv slides replace PRESENTATION_ID --file replacements.json
bash
gdrv slides list --json
gdrv slides list --paginate --json
gdrv slides create "My Presentation" --json
gdrv slides create "My Presentation" --parent FOLDER_ID --json
gdrv slides get PRESENTATION_ID --json
gdrv slides read PRESENTATION_ID
gdrv slides read PRESENTATION_ID --json
gdrv slides update PRESENTATION_ID --requests-file updates.json
gdrv slides replace PRESENTATION_ID --data '{"{{NAME}}":"Alice","{{DATE}}":"2026-01-24"}'
gdrv slides replace PRESENTATION_ID --file replacements.json

Shared Drives

共享驱动器

bash
gdrv drives list --json
gdrv drives list --paginate --json
gdrv drives get DRIVE_ID --json
gdrv files list --drive-id DRIVE_ID --json
bash
gdrv drives list --json
gdrv drives list --paginate --json
gdrv drives get DRIVE_ID --json
gdrv files list --drive-id DRIVE_ID --json

Admin SDK

Admin SDK操作

bash
gdrv auth service-account --key-file ./service-account-key.json --impersonate-user admin@example.com --preset admin
gdrv admin users list --domain example.com --json
gdrv admin users get user@example.com --json
gdrv admin users create newuser@example.com --given-name "John" --family-name "Doe" --password "TempPass123!"
gdrv admin users update user@example.com --given-name "Jane" --family-name "Smith"
gdrv admin users suspend user@example.com
gdrv admin users delete user@example.com
gdrv admin groups list --domain example.com --json
gdrv admin groups create group@example.com "Team Group" --description "Team access group"
gdrv admin groups members list team@example.com --json
gdrv admin groups members add team@example.com user@example.com --role MEMBER
gdrv admin groups members remove team@example.com user@example.com
bash
gdrv auth service-account --key-file ./service-account-key.json --impersonate-user admin@example.com --preset admin
gdrv admin users list --domain example.com --json
gdrv admin users get user@example.com --json
gdrv admin users create newuser@example.com --given-name "John" --family-name "Doe" --password "TempPass123!"
gdrv admin users update user@example.com --given-name "Jane" --family-name "Smith"
gdrv admin users suspend user@example.com
gdrv admin users delete user@example.com
gdrv admin groups list --domain example.com --json
gdrv admin groups create group@example.com "Team Group" --description "Team access group"
gdrv admin groups members list team@example.com --json
gdrv admin groups members add team@example.com user@example.com --role MEMBER
gdrv admin groups members remove team@example.com user@example.com

Sync

同步操作

bash
gdrv sync init ./local-folder REMOTE_FOLDER_ID --json
gdrv sync init ./local-folder REMOTE_FOLDER_ID --direction push --conflict local-wins --json
gdrv sync init ./local-folder REMOTE_FOLDER_ID --exclude "*.tmp,node_modules" --json
gdrv sync list --json
gdrv sync status CONFIG_ID --json
gdrv sync CONFIG_ID --json
gdrv sync push CONFIG_ID --json
gdrv sync pull CONFIG_ID --json
gdrv sync CONFIG_ID --delete --json
gdrv sync CONFIG_ID --concurrency 10 --json
gdrv sync remove CONFIG_ID --json
bash
gdrv sync init ./local-folder REMOTE_FOLDER_ID --json
gdrv sync init ./local-folder REMOTE_FOLDER_ID --direction push --conflict local-wins --json
gdrv sync init ./local-folder REMOTE_FOLDER_ID --exclude "*.tmp,node_modules" --json
gdrv sync list --json
gdrv sync status CONFIG_ID --json
gdrv sync CONFIG_ID --json
gdrv sync push CONFIG_ID --json
gdrv sync pull CONFIG_ID --json
gdrv sync CONFIG_ID --delete --json
gdrv sync CONFIG_ID --concurrency 10 --json
gdrv sync remove CONFIG_ID --json

Config

配置管理

bash
gdrv config show
gdrv config set output_format json
gdrv config reset
bash
gdrv config show
gdrv config set output_format json
gdrv config reset

Multiple Profiles

多配置文件

bash
gdrv auth login --profile work
gdrv auth login --profile personal
gdrv --profile work files list --json
bash
gdrv auth login --profile work
gdrv auth login --profile personal
gdrv --profile work files list --json

Agent Best Practices

Agent最佳实践

  1. Always use
    --json
    for machine-readable output
  2. Use
    --paginate
    to get all results without missing items
  3. Use
    --dry-run
    before destructive operations
  4. Use file IDs not paths for Shared Drives
  5. Check exit codes: 0=success, 1=general error, 2=auth required, 3=invalid argument, 4=not found, 5=permission denied, 6=rate limited
  1. 始终使用
    --json
    参数
    以获取机器可读的输出
  2. 使用
    --paginate
    参数
    以获取所有结果,避免遗漏条目
  3. 在执行破坏性操作前使用
    --dry-run
    参数
  4. 对于共享驱动器,使用文件ID而非路径
  5. 检查退出码:0=成功,1=一般错误,2=需要身份验证,3=无效参数,4=未找到,5=权限拒绝,6=速率限制

Common Workflows

常见工作流

Upload and Share

上传并共享

bash
RESULT=$(gdrv files upload report.pdf --json)
FILE_ID=$(echo $RESULT | jq -r '.id')
gdrv permissions create $FILE_ID --type user --email user@example.com --role reader
bash
RESULT=$(gdrv files upload report.pdf --json)
FILE_ID=$(echo $RESULT | jq -r '.id')
gdrv permissions create $FILE_ID --type user --email user@example.com --role reader

Search and Download

搜索并下载

bash
gdrv files list --query "mimeType = 'application/pdf'" --order-by "modifiedTime desc" --json
gdrv files download FILE_ID --output local-copy.pdf
bash
gdrv files list --query "mimeType = 'application/pdf'" --order-by "modifiedTime desc" --json
gdrv files download FILE_ID --output local-copy.pdf

Create Sheet with Data

创建带数据的表格

bash
RESULT=$(gdrv sheets create "Data Report" --json)
SHEET_ID=$(echo $RESULT | jq -r '.spreadsheetId')
gdrv sheets values update $SHEET_ID "Sheet1!A1" --values '[["Name","Value"],["Item1",100],["Item2",200]]'
bash
RESULT=$(gdrv sheets create "Data Report" --json)
SHEET_ID=$(echo $RESULT | jq -r '.spreadsheetId')
gdrv sheets values update $SHEET_ID "Sheet1!A1" --values '[["Name","Value"],["Item1",100],["Item2",200]]'

Sync Local Folder with Drive

同步本地文件夹与Drive

bash
RESULT=$(gdrv sync init ./projects REMOTE_FOLDER_ID --json)
CONFIG_ID=$(echo $RESULT | jq -r '.id')
gdrv sync status $CONFIG_ID --json
gdrv sync $CONFIG_ID --json
bash
RESULT=$(gdrv sync init ./projects REMOTE_FOLDER_ID --json)
CONFIG_ID=$(echo $RESULT | jq -r '.id')
gdrv sync status $CONFIG_ID --json
gdrv sync $CONFIG_ID --json