Gdrive — Linuxで使うコマンドライン版Google Driveクライアント

概要
Gdriveは、Google Driveをコマンドラインから操作するための軽量ツールです。一行で定義すると「ターミナルからDriveの基本操作をシンプルに行えるCLIクライアント」です。GUIが使えない環境やスクリプト自動化、サーバからのファイル操作に向いています。この記事はUbuntu 16.04で検証した手順と、実運用で役立つ運用ガイドや代替案、セキュリティ配慮も合わせてまとめています。
重要: この記事で示すコマンド例では実行ファイル名を gdrive-linux-386 としています。使用する環境に合わせてファイル名(例: gdrive-linux-x64)を読み替えてください。
ダウンロード・インストール・初期セットアップ
- 公式GitHubのリリースページから実行バイナリをダウンロードします(環境に応じたアーキテクチャを選ぶ)。
- ダウンロード後、実行権限を付与します。例:
chmod +x gdrive-linux-386
- (任意)システム全体で使うなら /usr/local/bin へ移動します(管理者権限が必要)。例:
sudo mv gdrive-linux-386 /usr/local/bin/gdrive
- 初回認証。ツールにDriveへのアクセスを許可するため、まず about サブコマンドで認証フローを開始します。
./gdrive-linux-386 about
コマンドが表示するURLをブラウザで開き、Googleアカウントでログインして許可ボタンを押すと、認証コードが表示されます。そのコードをターミナルに貼り付けると認証が完了します。
認証成功後、ターミナルに接続状態などが表示されます。
重要な注意点: 認証処理によりホームディレクトリに .gdrive というフォルダが作成され、そこにトークン(認証情報)が保存されます。誰でもこのファイルにアクセスできるとアカウントへアクセスされる可能性があるため、ファイルの権限と保管場所に十分注意してください。
基本的な使い方(主要コマンド例)
以下は代表的な操作例です。ここでは実行ファイルをカレントディレクトリの gdrive-linux-386 として記載しています。
ファイル・ディレクトリの一覧表示
./gdrive-linux-386 list
デフォルトでは最大30件が表示されます。最大表示数を指定するには -m フラグを使います。
./gdrive-linux-386 list -m 10
名前で絞り込む例(name に特定の文字列を含むものだけ表示):
./gdrive-linux-386 list -m 10 --query "name contains 'gmail'"
検索クエリ実行例の出力:
アップロード
単一ファイルのアップロード:
./gdrive-linux-386 upload [file-name]
特定ディレクトリ(親フォルダ)へアップロードするにはディレクトリIDを指定します。ディレクトリIDは list で該当エントリを確認して取得します。
./gdrive-linux-386 upload --parent [dir ID] [filename]
ディレクトリ作成:
./gdrive-linux-386 mkdir [directory-name]
再帰的にアップロードしたい場合はツールがサポートするオプション(バージョンに依存)を確認してください。
ダウンロード
./gdrive-linux-386 download [file-name]
主なフラグ:
- -f : 同名のローカルファイルがある場合に上書きする
- -r : ディレクトリを再帰的にダウンロードする(対応している場合)
- –delete : ダウンロード成功後にリモートファイルを削除する
これらのフラグは upload でも一部利用できます。
共有設定
全員に閲覧権を与える(公開):
./gdrive-linux-386 share [file ID]
特定ユーザー(メールアドレス)に共有する例(読み取り権限):
./gdrive-linux-386 share [file ID] --type user --email [email protected]
権限ロールを指定する場合は –role フラグを使用します(owner / writer / commenter / reader)。
ファイル情報の表示
./gdrive-linux-386 info [file ID]
表示例:
よく使うフラグと意味(早見表)
- -m <数>: list の最大表示件数を指定
- –query <式>: list のフィルタリング(Drive APIのクエリ形式に類似)
- -f: 上書き許可(upload/download)
- -r: 再帰(ディレクトリ処理)
- –delete: ダウンロード成功時にリモートを削除
- –parent
: upload 時に親ディレクトリを指定
詳細はプロジェクトのドキュメントを参照してください。
トラブルシューティング(よくある問題と対策)
- 実行できない: chmod +x を確認し、実行ファイル名を正しく指定しているか確認します。32ビットと64ビットのバイナリを間違えていないかも確認してください。
- 認証でコードが得られない: ブラウザで表示されるURLにアクセスし、正しいGoogleアカウントでログインしているか確認してください。企業アカウントの場合は組織ポリシーで外部アプリがブロックされることがあります。
- トークンファイルが消えた/権限エラー: ホームディレクトリの .gdrive フォルダとファイルの権限を確認し、必要なら再認証を行ってください。
- ネットワーク/タイムアウト: プロキシやファイアウォールの設定を確認し、必要であればシステム管理者に問い合わせてください。
- 操作が遅い/メモリ使用が多い: Gdriveのドキュメントにもある通り、実装によってはパフォーマンスやメモリ使用に課題があります。大量のファイルを扱う場合は別のツールも検討してください。
セキュリティとプライバシーの注意点
- トークンの保護: ~/.gdrive 以下のトークンファイルを厳密に管理します。最低限ファイル所有者のみ読み書き可能(chmod 600)にすることを推奨します。
chmod 600 ~/.gdrive/token_v2.json
- アクセス権限の最小化: 共有設定は必要最低限にとどめ、長期にわたる公開設定は避けます。共有リンクは機密性に注意して発行してください。
- 監査ログと取り消し: 誰かのアクセス権を取り消す必要がある場合、share revoke 系のコマンドやGoogle Driveの管理画面で権限を削除します。
- GDPR/個人情報: 個人データや機微な情報をクラウドに置く場合、保存場所や契約条件(データ処理者としての扱い)を確認してください。法的助言が必要な場面では社内の法務やデータ保護担当に相談してください。
代替ツール(簡易比較)
- rclone — 幅広いクラウド対応と高機能な同期・マウント機能。多機能だが設定は複雑になりがち。
- google-drive-ocamlfuse — FUSEを使ってDriveをマウントできる。ファイルシステムとして扱いたい場合に便利。
- Insync — 商用のクライアントでGUIと継続的同期を提供。使いやすいが有料。
Gdriveは単純なコマンドで手早く操作したい場面に向きます。大量同期や高度なスケジューリングが必要なら rclone や商用製品を検討してください。
運用チェックリスト(役割別)
管理者:
- 実行バイナリの配置場所と更新手順をドキュメント化する
- 認証トークンのバックアップポリシーを決める(暗号化保管)
- 社内で利用する場合の利用ガイドと共有ポリシーを作成する
開発者/自動化担当:
- スクリプトから使う際はエラーコードとログ出力を実装する
- 認証トークンの再発行処理を自動化する(期限切れ対応)
- 大量データを扱う場面では事前にテストを行い、タイムアウトやメモリ使用を検証する
一般ユーザー:
- トークンファイルの取り扱いに注意する(他人に渡さない)
- 共有は目的と期間を明確にする
- ローカルに機密情報を保存する場合は暗号化を検討する
実務向けプレイブック(よく使うワークフロー)
インストールと初回認証:
- バイナリをダウンロード
- chmod +x で実行権限を付与
- ./gdrive about を実行してブラウザで認証コードを取得
- ~/.gdrive のパーミッションを確認
ディレクトリを作ってファイル一括アップロード(例):
./gdrive-linux-386 mkdir Backup-2025-09
# list で作成したフォルダの ID を確認
./gdrive-linux-386 upload --parent /path/to/file1 /path/to/file2
ファイル共有を取り消す(例):
# まず該当ファイルの権限IDを確認
./gdrive-linux-386 info
# 権限を削除(ツールのバージョンによりコマンド名が異なる場合あり)
./gdrive-linux-386 unshare --permission
受け入れ基準(動作確認の目安):
- 認証フローがブラウザで完了し、./gdrive about がアカウント情報を返す
- list コマンドで期待するファイル一覧が得られる
- upload/download がエラーなく成功する
- 共有設定の付与・取り消しが正しく反映される
いつ使うべきでないか(反例)
- 大量の小ファイルを短時間で同期し続ける必要がある場合はパフォーマンス上不利になる可能性があります。
- エンタープライズ向けの厳格な監査やSAML/SSO連携が必須の場合、組織ポリシーで公式・企業向け製品を使うべきです。
決定フロー(ツール選定の簡易チャート)
flowchart TD
A[目的は何か?] -->|単発のコマンド操作| B[Gdrive]
A -->|常時マウント/FSが必要| C[google-drive-ocamlfuse]
A -->|同期や多クラウドが必要| D[rclone]
A -->|GUIで継続同期が欲しい| E[Insync(有料)]
B --> F[小規模なスクリプトやサーバ作業に最適]
C --> G[デスクトップでDriveをファイルとして扱える]
D --> H[高度な同期と多機能]
E --> I[使いやすさ重視/有料]
1行用語集
- トークン: 認証情報を含むファイル。GdriveがDriveへアクセスする資格情報。
- ディレクトリID: Google Drive上のフォルダを一意に示す識別子。
- 再帰(-r): ディレクトリを中身ごと対象にする操作。
まとめ
Gdriveはシンプルさが魅力のCLIツールです。インストールと初回認証は簡単で、一覧表示・アップロード・ダウンロード・共有などの主要操作をスクリプト化できます。ただし、トークン管理とパフォーマンス面には注意が必要です。用途に応じて rclone や google-drive-ocamlfuse、商用クライアントと比較検討してください。
重要: 本文中のコマンドやオプションはツールのバージョンにより変わる可能性があります。常に公式GitHubのドキュメントを確認してください。