gogcliのgog driveコマンドで、Google Driveへのアップロード・共有をCLIから自動化できます。
- 要点1:
gog drive upload --parent=[フォルダID]で特定フォルダへのファイル格納が1行で完了 - 要点2:
gog drive mkdirでフォルダを作成し、gog drive shareで共有リンクを即時発行可能 - 要点3: Claude Codeと組み合わせると、大量ファイルの分類・格納・共有設定まで自動化できる
対象: Claude CodeやCLIツールを使って、Google Driveの操作を自動化したいエンジニア・IT担当者
今日やること: gogcliをインストールし、gog auth add でDriveを有効化する
この記事の目次
gogcliを使えば、Google Driveへのファイルアップロードから、フォルダへのファイルまとめ、共有設定までをターミナル1行で実行できます。
「毎回ブラウザを開いてGoogleドライブを操作するのが面倒」「大量のファイルを決まったフォルダに自動格納したい」——そうした課題は、gogcliのDriveコマンドで解決できます。
この記事では、gogcliのGoogle Drive関連コマンドをすべて解説し、実際のファイル自動格納事例も紹介します。インストール・認証の設定から、フォルダ作成・アップロード・共有リンク発行・ダウンロードまで、すぐに実践できる手順をまとめました。
gogcliのGoogle Drive操作とは — なぜCLIで操作するのか
gogcliは、Google Workspace(Gmail・Calendar・Drive・Contacts・Sheets・Docs等)をターミナルから操作できるCLIツールです。公式サイト(gogcli.sh)で公開されており、gog コマンド1つでGoogle の各サービスにアクセスできます。
ブラウザのGUIでGoogle Driveを操作する場合、毎回ログイン・画面遷移が必要で、繰り返し作業には不向きです。一方、CLIであれば次のメリットがあります。
| 比較軸 | ブラウザGUI | gogcli(CLI) |
|---|---|---|
| 操作の再現性 | 手動操作のため毎回同じ手順が必要 | コマンドをスクリプト化して再現可能 |
| バッチ処理 | 大量ファイルには向かない | ループでファイルを一括処理できる |
| Claude Code連携 | 連携不可 | Claude Codeからのシェル実行で完全自動化 |
| 習得コスト | 低い(直感的) | コマンドを覚える必要があるが汎用性が高い |
CLIならではのメリット(自動化・バッチ処理)
gogcliを使うことで、Google Driveの操作をシェルスクリプトやClaude Codeのタスクとして記述できます。たとえば「週次の作業報告書を特定フォルダに自動格納する」「チームに共有するファイルの共有リンクをまとめて発行する」といった繰り返し作業を、一度設定すれば自動実行させることができます。
gogcliがサポートするDriveコマンド一覧
| コマンド | 機能 |
|---|---|
gog drive ls |
フォルダ内のファイル・フォルダ一覧を表示 |
gog drive search |
キーワードでDrive内を検索 |
gog drive mkdir |
フォルダを新規作成 |
gog drive upload |
ローカルファイルをDriveにアップロード |
gog drive download |
DriveのファイルをローカルにDL |
gog drive share |
ファイルの共有設定・共有リンク発行 |
これらをClaude Codeから呼び出すことで、ファイル管理フローを完全自動化できます。
事前準備 — gogcliのインストールと認証設定
gogcliのインストール(Homebrew / 手動)
Homebrewを使っている場合はコマンド1つでインストールできます。
brew install gogcli
インストール後、gog --version でバージョンを確認してください。手動でインストールする場合は、公式サイト(gogcli.sh)のダウンロードページを参照してください。
なお、環境によって gog のパスが /opt/homebrew/bin/gog または ~/.local/bin/gog になる場合があります。which gog で確認してください。
gog auth add でDriveを有効化する
gogcliはOAuth認証でGoogleアカウントに接続します。以下のコマンドでDriveサービスを有効化します。
gog auth add あなたのアカウント@gmail.com --services drive
実行するとブラウザが開き、Googleアカウントへのアクセス許可を求めるページが表示されます。許可すると認証が完了します。
認証済みサービスの確認は次のコマンドで行えます。
gog auth services --account=あなたのアカウント@gmail.com
drive: true と表示されれば有効化完了です。
認証が切れたときの再認証手順
しばらく使っていないとOAuthトークンが失効する場合があります。Drive操作でエラーが出たときは、まず再認証を試みてください。
macOSの場合、Keychainがロックされているとgogcliの認証操作が失敗することがあります。ターミナルで以下を実行してKeychainをアンロックしてから再認証してください。
# Keychainをアンロック(macOSログインパスワードを入力)security unlock-keychain ~/Library/Keychains/login.keychain-db# Driveの再認証gog auth add あなたのアカウント@gmail.com --services drive
ブラウザでGoogleアカウントを認証すれば再び使用できるようになります。
\ Claude Codeの導入、何から始めればいいかわかります /
法人向けClaude Code個別指導の無料相談はこちらファイルを検索する — gog drive search / ls
gog drive search でキーワード検索
Drive内のファイルをキーワードで検索します。
# ファイル名に「報告書」が含まれるファイルを検索gog drive search "報告書" --account=あなたのアカウント@gmail.com# JSON形式で出力(IDを取得したいとき)gog drive search "報告書" --account=あなたのアカウント@gmail.com --json
検索結果にはファイルID・ファイル名・MIMEタイプ・更新日が表示されます。ファイルIDは、アップロード先の --parent 指定や gog drive download で使用します。
gog drive ls でフォルダ内一覧表示
# マイドライブの直下一覧gog drive ls --account=あなたのアカウント@gmail.com# 最大件数を指定gog drive ls --max 20 --account=あなたのアカウント@gmail.com
–parent オプションで特定フォルダの中身を確認
フォルダIDを指定して、そのフォルダ内のファイル一覧を表示します。
gog drive ls --parent=[フォルダID] --account=あなたのアカウント@gmail.com
フォルダIDはDriveのURLから取得できます。https://drive.google.com/drive/folders/XXXX の XXXX がフォルダIDです。
ポイントファイルIDやフォルダIDを頻繁に使う場合は、シェル変数に格納しておくと管理しやすくなります。
FOLDER_ID="1vt2eM0zZq_1SH8db69tsopZndFFWwDhv"のように変数化しておくことで、コマンドの可読性が上がります。
フォルダを作成する — gog drive mkdir
gog drive mkdir の基本構文
Drive上に新しいフォルダを作成します。
gog drive mkdir "フォルダ名" --account=あなたのアカウント@gmail.com
親フォルダIDを指定してサブフォルダを作成
特定フォルダの中にサブフォルダを作成する場合は --parent オプションを使います。
gog drive mkdir "2026年_月次報告" \ --parent=[親フォルダのID] \ --account=あなたのアカウント@gmail.com \ --json
--json オプションを付けると、作成されたフォルダのIDが返ってきます。このIDを次のアップロードで使用します。
実際の活用事例: あるメディアサイトでは、コンテンツカテゴリに対応した5つのフォルダ(Dify・claudecode・n8n・その他・インタビュー)を、以下のようなシェルスクリプトで一括作成しました。
# カテゴリフォルダを一括作成PARENT_FOLDER_ID="1vt2eM0zZq_1SH8db69tsopZndFFWwDhv"for category in "Dify" "claudecode" "n8n" "その他" "インタビュー"; do gog drive mkdir "$category" \ --parent="$PARENT_FOLDER_ID" \ --account=あなたのアカウント@gmail.com \ --jsondone
これを実行することで、Google Drive上に5つのサブフォルダが数秒で作成できました。
Claude Codeの導入や活用方法について、個別にご相談いただけます。「gogcliのセットアップ方法がわからない」「自社のファイル管理フローを自動化したい」といった段階から対応しています。
ファイルをアップロードする — gog drive upload
gog drive upload の基本構文
ローカルのファイルをGoogle Driveにアップロードします。
gog drive upload ./レポート.pdf --account=あなたのアカウント@gmail.com
デフォルトではマイドライブの直下にアップロードされます。
–parent でフォルダ指定アップロード
特定のフォルダにアップロードしたい場合は --parent でフォルダIDを指定します。
gog drive upload ./レポート.pdf \ --parent=[フォルダID] \ --account=あなたのアカウント@gmail.com
複数ファイルをループでアップロードする方法
gog drive upload は現時点でフォルダ丸ごとのアップロードオプションを持っていません。フォルダ内のファイルをまとめてアップロードしたい場合は、シェルのループを使います。
FOLDER_ID="フォルダのID"SOURCE_DIR="/Users/yourname/Documents/reports"for f in "$SOURCE_DIR"/*; do echo "Uploading: $(basename "$f")" gog drive upload "$f" \ --parent="$FOLDER_ID" \ --account=あなたのアカウント@gmail.comdone
フォルダごとアップロードする場合の代替アプローチ
フォルダ構造ごとアップロードしたい場合は、①Drive上でフォルダを gog drive mkdir で作成 → ②各フォルダのIDを取得 → ③各フォルダIDに対応するファイルをアップロード、という3ステップで対応できます。
実際の活用事例(92ファイル一括移行)
あるメディアサイトでは、92本分のPDFファイルを5カテゴリに分類してGoogle Driveの共有フォルダに格納する作業がありました。手動でアップロードすると数十分かかる作業ですが、gogcliと以下のシェルスクリプトを使うことで数分で完了しました。
# カテゴリとフォルダIDの対応表(mkdir実行後に取得したID)declare -A FOLDER_IDS=( ["Dify"]="1jJQVCKK2oQfpJiwoAn0MlS1q070D28kD" ["claudecode"]="1h21VTIeWLDFeZ8DwltkTlU3bsneIVn76" ["n8n"]="187Ufy7NzDEHq4W6xCSQXmnqoA9TTS4hh" ["その他"]="1il7rWoaopJQUF7cVa3iCszvg2YsO181D" ["インタビュー"]="1Vl0iiDT523id5sObqzMAq2qxy9ScpGN4")BASE_DIR="/Users/riku/Desktop/作業フォルダ/published_92"for category in "Dify" "claudecode" "n8n" "その他" "インタビュー"; do FOLDER_ID="${FOLDER_IDS[$category]}" echo "=== $category のファイルをアップロード中 ===" for f in "$BASE_DIR/$category"/*; do echo " - $(basename "$f")" gog drive upload "$f" \ --parent="$FOLDER_ID" \ --account=あなたのアカウント@gmail.com donedoneecho "完了: 全ファイルのアップロードが終わりました"
このスクリプトをClaude Codeに指示して実行させることで、92ファイルの一括移行を自動化することができました。
ファイルを共有する — gog drive share
共有リンクを生成する(閲覧/編集)
ファイルに共有リンクを付与します。まず gog drive search でファイルIDを取得してから実行します。
# 閲覧可能な共有リンクを生成(reader権限)gog drive share [ファイルID] \ --role=reader \ --type=anyone \ --account=あなたのアカウント@gmail.com
--type=anyone を指定するとリンクを知っている誰でもアクセス可能になります。社内限定にしたい場合は --type=domain を使用してください。
特定のメールアドレスに権限を付与する
特定のユーザーのみに閲覧・編集権限を付与する場合は次のように指定します。
# 特定ユーザーに編集権限(writer)を付与gog drive share [ファイルID] \ --role=writer \ --type=user \ --email=colleague@example.com \ --account=あなたのアカウント@gmail.com
権限の種類(reader/writer/owner)の使い分け
| 権限(role) | 内容 |
|---|---|
reader |
閲覧のみ |
commenter |
閲覧 + コメント |
writer |
編集可能 |
owner |
所有者権限(移譲時に使用) |
社外向けに資料を共有する場合は reader、社内チームに編集権限を与える場合は writer が一般的な使い分けです。
\ 業務自動化のお悩み、プロが30分で整理します /
法人向けClaude Code個別指導の無料相談はこちらファイルをダウンロードする — gog drive download
ファイルIDを取得してダウンロード
gog drive search で取得したファイルIDを指定してダウンロードします。
gog drive download [ファイルID] --account=あなたのアカウント@gmail.com
カレントディレクトリにファイルが保存されます。保存先を指定する場合は --output オプションを使います。
gog drive download [ファイルID] \ --output=/Users/yourname/Downloads \ --account=あなたのアカウント@gmail.com
検索結果から直接ダウンロードするワンライナー
ファイル名がわかっている場合は、searchとdownloadを組み合わせたワンライナーで直接取得できます。
# "最終報告書"というファイルを検索してIDを取得→ダウンロードFILE_ID=$(gog drive search "最終報告書" --json --account=あなたのアカウント@gmail.com \ | python3 -c "import sys,json; print(json.load(sys.stdin)[0]['id'])")gog drive download "$FILE_ID" --account=あなたのアカウント@gmail.com
このようなコマンドをClaude Codeに組み立てさせることで、ファイル名を指定するだけでダウンロードまで自動化できます。
よくある質問
Q. gogcliのgog drive uploadでフォルダごとアップロードできますか?
現時点では、gog drive upload コマンドにフォルダ丸ごとのアップロードオプションはありません。フォルダ内のファイルを一括アップロードしたい場合は、シェルのループ処理(for f in フォルダ/*; do gog drive upload ...)を使ってください。フォルダ構造を再現したい場合は、先に gog drive mkdir でフォルダを作成し、各フォルダIDに対してファイルをアップロードする方法が効果的です。
Q. アップロードしたファイルのIDを確認する方法は?
--json オプションを付けると出力がJSON形式になり、アップロード結果にファイルIDが含まれます。また、アップロード後に gog drive search でファイル名を検索してIDを確認することもできます。
Q. 認証が切れたときはどうすればよいですか?
macOSの場合は、まず security unlock-keychain ~/Library/Keychains/login.keychain-db でKeychainをアンロックし、その後 gog auth add [アカウント] --services drive で再認証してください。ブラウザが開いてGoogleの認証ページが表示されるので、許可を行えば復旧できます。
Q. 大量ファイルをアップロードするときに注意することは?
Google Drive APIには1日あたりのAPIリクエスト数に上限があります(無料アカウントは1,000件/日)。大量ファイルを一括アップロードする場合は、ループの中に sleep 0.5 等の待機処理を挟むことを推奨します。また、Google Workspaceアカウントを使っている場合は上限が緩和されています。
Q. 複数のGoogleアカウントを使い分ける方法は?
各コマンドに --account= でアカウントを指定するか、環境変数 GOG_ACCOUNT にデフォルトアカウントを設定することで使い分けられます。
export GOG_ACCOUNT=work@example.com
\ AI活用の「次の一手」を一緒に考えませんか /
法人向けClaude Code個別指導の無料相談はこちらまとめ
gogcliのgog driveコマンドを使えば、Google Driveのファイル管理をCLIから自動化できます。本記事で解説した内容を振り返ります。
- 検索:
gog drive search/gog drive lsでファイル・フォルダを一覧・検索 - フォルダ作成:
gog drive mkdir --parentでサブフォルダを指定フォルダ内に作成 - アップロード:
gog drive upload --parentで特定フォルダへのファイル格納。複数ファイルはループ処理で対応 - 共有:
gog drive share --roleで閲覧・編集権限の付与と共有リンク発行 - ダウンロード:
gog drive downloadでファイルIDを指定してローカルに保存
Claude Codeと組み合わせると、「指定フォルダにあるファイルを分類してDriveに格納して共有リンクを発行して」という指示1つで、フォルダ作成・アップロード・共有設定まで一連の作業を自動化できます。
さらに深く活用する方法は、gogcli入門ガイドやClaude Code × Google Drive自動化の記事も参考にしてください。
Claude Codeの導入・活用をサポートします
株式会社Nexaでは、Claude Codeを活用した業務自動化の個別指導・企業研修を提供しています。gogcliを使ったGoogle Workspace自動化の設定方法など、詳しい活用方法は無料相談でお伝えしています。「何から始めればいいかわからない」という段階からご支援いたします。





