Gdrive — командная утилита для доступа к Google Drive на Linux

Введение
Хотя Google Drive остаётся одним из самых популярных облачных хранилищ, официального клиента для Linux у Google нет. Сообщество Linux создало несколько неофициальных клиентов, и один из таких — Gdrive. Это небольшая утилита, которая управляет вашим Google Drive через командную строку.
Определение: Gdrive — это исполняемый файл (binary), который выполняет операции над файлами и каталогами в вашей учётной записи Google Drive через CLI.
Важно: в статье описаны шаги, проверенные на Ubuntu 16.04; для других дистрибутивов команды установки и зависимости могут отличаться.
Особенности Gdrive (что умеет)
- Доступ к списку файлов и директорий (list).
- Загрузка (upload) и скачивание (download) файлов и папок (с рекурсией).
- Создание директорий (mkdir).
- Просмотр информации о файле (info).
- Управление доступом: выдача прав чтения/записи/комментирования/владения (share).
- Поддержка флагов для перезаписи (-f), рекурсивной загрузки/скачивания (-r) и удаления удалённой копии после скачивания (–delete).
Установка и настройка Gdrive
Перейдите на официальный GitHub-проект Gdrive и скачайте исполняемый файл под вашу архитектуру (x86_64, 386 и т. п.). Например, для 32-битной системы файл может называться gdrive-linux-386.
Сделайте файл исполняемым:
chmod +x gdrive-linux-386
- Запустите авторизацию, использовав команду about, чтобы инициировать OAuth-процесс:
./gdrive-linux-386 about
Команда выведет URL — перейдите по нему в браузере, авторизуйтесь в нужном Google-аккаунте и нажмите “Allow” (Разрешить). После этого на веб‑странице появится код подтверждения, который нужно вставить в терминал.
После ввода кода в терминале Gdrive установит соединение с вашим аккаунтом:
Важно: в процессе авторизации создаётся каталог ~/.gdrive с файлом токена. Любой, у кого есть доступ к этому файлу, сможет получить доступ к вашему Google Drive. Храните домашнюю директорию и резервные копии токена в безопасности.
Быстрое руководство по командам
Предположения: в примерах ниже файл исполняемого файла называется gdrive-linux-386 и запускается из текущей рабочей директории.
Список содержимого
Показать файлы и папки:
./gdrive-linux-386 list
По умолчанию выводит до 30 элементов. Чтобы изменить лимит, используйте флаг -m:
./gdrive-linux-386 list -m 10
Фильтрация по запросу (query), например, показать файлы, в имени которых есть “gmail”:
./gdrive-linux-386 list -m 10 --query "name contains 'gmail'"
Полезная подсказка: чтобы получить ID каталога для операций upload –parent используйте list с подробным выводом и найдите нужную строку с ID.
Загрузка (upload) и скачивание (download)
Загрузить файл в корень Drive:
./gdrive-linux-386 upload [file-name]
Загрузить файл в конкретный каталог по ID:
./gdrive-linux-386 upload --parent [dir ID] [filename]
Создать каталог в Drive:
./gdrive-linux-386 mkdir [directory-name]
Скачать файл по имени или ID:
./gdrive-linux-386 download [file-name or file-id]
Важные флаги для загрузки/скачивания:
- -f — перезаписать локальный файл при скачивании, если он уже есть.
- -r — рекурсивная загрузка/скачивание директорий.
- –delete — удалить удалённую копию после успешного скачивания (полезно при перемещении).
Примечание: флаги -r и –delete работают и при upload.
Доступ и шаринг
Сделать файл доступным для чтения всем:
./gdrive-linux-386 share [file ID]
Пошаговая передача права конкретному пользователю по e-mail:
./gdrive-linux-386 share [file ID] --type user --email [email add]
По умолчанию команда выдаёт роль reader. Чтобы изменить роль, используйте –role с одним из значений: owner, writer, commenter, reader.
Важно: передача роли owner перенесёт владение файла; будьте внимательны с этой операцией.
Просмотр информации о файле
Показать метаданные файла (размер, MIME-type, даты, разрешения и т. п.):
./gdrive-linux-386 info [file ID]
Частые сценарии использования и примеры
- Бэкап конфигурации: tar и upload
tar czf config-$(date +%F).tgz ~/.config/myapp
./gdrive-linux-386 upload config-$(date +%F).tgz
- Перенос архива в удалённую папку и удаление локальной копии после успешной загрузки:
./gdrive-linux-386 upload --parent 0Bxyz12345 my-archive.tgz --delete
- Массовая загрузка каталога рекурсивно:
./gdrive-linux-386 upload -r --parent [dir ID] path/to/local/folder
Безопасность и управление токенами
- Токен хранится в ~/.gdrive; резервное копирование или передача этого файла означает передачу доступа к Drive.
- При подозрении на компрометацию удалите файл токена и отзовите доступ в настройках Google Account → Security → Third-party access.
- Для корпоративных сценариев рассматривайте выделенные сервисные аккаунты или IAM-политики, где это поддерживается.
Важно: Gdrive использует OAuth — доступ можно отозвать из аккаунта Google в любой момент.
Ограничения и когда Gdrive не подходит
- Производительность: официальная документация проекта указывает, что реализация может быть медленной и потреблять много памяти.
- Отсутствие синхронизации в режиме реального времени. Если вам нужна двусторонняя синхронизация (например, Dropbox-подобный опыт), Gdrive не лучший выбор.
- Нет графического интерфейса. Для пользователей, которые предпочитают GUI, подойдёт альтернативное ПО.
- Управление большими объёмами данных и сложные сценарии разрешений лучше решать через rclone или официальные корпоративные инструменты.
Альтернативы (когда выбрать другое ПО)
- rclone — мощный CLI-инструмент с поддержкой множества облачных провайдеров и настройкой лимитов и буферов; рекомендуем для сложных сценариев и синхронизации.
- Insync / overGrive — коммерческие GUI-клиенты с двухсторонней синхронизацией и интеграцией с рабочим столом.
- drive (хорошо интегрируется с Google Drive API и имеет отличия в синтаксисе).
Выбор зависит от задач: если нужна простая автоматизация через скрипты — Gdrive или rclone; если нужен GUI и синхронизация — Insync/overGrive.
Руководство по отладке (Runbook)
Пропала авторизация / ошибка “invalid_grant”:
- Удалите ~/.gdrive/credentials.json (или весь каталог ~/.gdrive).
- Перезапустите ./gdrive-linux-386 about и пройдите авторизацию заново.
“Permission denied” при записи локально:
- Проверьте права на каталоги и диск.
- Убедитесь, что команда выполняется от пользователя, у которого есть права записи.
Ошибки при upload/download (таймауты, частые прерывания):
- Повторите команду с менее агрессивными параметрами сети или запустите из надежного соединения.
- Для массовых операций используйте пакетирование (архивация) и загружайте один большой файл.
Проблемы с лимитами API (rate limit):
- Разбейте операции на более мелкие партии.
- Используйте экспоненциальные повторяющиеся попытки в скриптах.
Чек-листы по ролям
Чек-лист для разработчика DevOps:
- Установить исполняемый файл в /usr/local/bin и сделать исполняемым.
- Настроить сервисный аккаунт или отдельный Google-аккаунт для бэкапов (если возможно).
- Настроить ротацию токенов и хранение секретов в безопасном хранилище (Vault).
Чек-лист для системного администратора:
- Проверить права доступа к ~/.gdrive.
- Настроить cron/анц для регулярных загрузок.
- Документировать процедуру отзыва доступа и восстановления.
Чек-лист для рядового пользователя:
- Пройти авторизацию через ./gdrive-linux-386 about.
- Попробовать list, upload и download в тестовой папке.
- Не передавать файл токена другим людям.
Критерии приёмки
- Утилита успешно авторизовалась и показала список файлов: ./gdrive-linux-386 list
- Удалось загрузить тестовый файл и затем скачать его обратно: upload → download
- Шаринг файлом выдал доступ нужному e-mail и корректную роль (–role)
- Локальный файл токена хранится в ~/.gdrive и защищён правами доступа 700/600
Ментальные модели и рекомендации
- Модель “архив → перемещение”: для больших объёмов создавайте архивы (tar/gzip) и загружайте один файл вместо большого количества мелких.
- Модель “токен как ключ”: относитесь к файлу в ~/.gdrive как к ключу доступа; проследите где он хранится и кто имеет к нему доступ.
- Модель “FIFO операций”: при пакетной синхронизации сначала выгружайте, затем проверяйте и только потом удаляйте локальные копии (–delete), чтобы избежать потери данных.
Заключение
Gdrive — удобный и лёгкий инструмент, если вам нужно управлять Google Drive из CLI и запускать простые автоматические задачи. Он особенно полезен для скриптов и быстрых операций без установки тяжёлого GUI-клиента. Однако у утилиты есть ограничения по производительности и функционалу; для более сложных сценариев стоит рассмотреть rclone или коммерческие клиенты.
Ключевые рекомендации:
- Защитите файл токена в ~/.gdrive.
- Используйте архивирование для массовых операций.
- Для регулярной синхронизации рассмотрите rclone или платные клиенты.
Дополнительные ресурсы: официальный репозиторий Gdrive на GitHub содержит подробную документацию по флагам и примерам использования.
Важно: перед массовыми операциями сделайте резервную копию критичных данных.
Похожие материалы

Как найти контакты по каналу YouTube

Восстановление папки «Документы» в Windows

Зашифровать ZIP на Android и защитить паролем

Как посмотреть историю включений и выключений Windows

Gdrive: CLI для Google Drive на Linux
