10 分钟上手 BaiduPCS-Go:把百度网盘搬进终端的完整指南
【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go
BaiduPCS-Go 是一款用 Go 语言开发的百度网盘命令行客户端,上传、下载、转存、离线下载这些网页端功能,它都能在终端里完成。如果你在服务器上折腾过网盘,或者曾在网页里逐条勾选文件下载,大概能立刻理解这种"一切交给命令"的爽快感——这也是这款工具存在的全部理由。
先从一件烦心事说起
假设你正在收集一批学习资料,手里攒了几十个分享链接。常规流程是这样的:打开网页 → 输入提取码 → 勾选文件 → 转存到自己的网盘。重复二十次之后,耐心基本清零。
再换一个场景:你有一台只有命令行的服务器,想定期把日志传回网盘备份。网页客户端装不了,图形界面更不可能,剩下的办法只有盯着浏览器干瞪眼。
BaiduPCS-Go 要解决的正是这两件事:把网盘操作变成一行行命令,把重复劳动交给脚本。它是 iikira/BaiduPCS-Go 的延续版本,在保留原版全部能力的基础上,重点补强了分享链接转存功能,这也是它最值得先试的部分。
装好它,只需三步
第一步:下载或编译程序
两种方式任选:
- 直接用预编译版本:Windows、Linux、macOS 的成品包都有,解压即用。Windows 上在命令提示符或 PowerShell 里运行,Linux/macOS 在终端里运行。
- 源码编译:想自己动手,先把仓库克隆下来:
git clone https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go cd BaiduPCS-Go go build程序是纯 Go 写的,交叉编译很方便。比如在 Linux 上编译 Windows 64 位版本,只需要一条命令:
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build提醒一句:运行前确认终端编码是 UTF-8,否则输出可能出现乱码。
第二步:登录你的账号
直接运行程序会进入交互模式,提示符是BaiduPCS-Go >,登录成功后变成BaiduPCS-Go:<工作目录> <百度ID>$。登录有三种方式,推荐第一种:
| 登录方式 | 命令 | 适用情况 |
|---|---|---|
| Cookies | BaiduPCS-Go login -cookies="完整Cookie串" | 最稳妥,适合大多数人 |
| BDUSS + STOKEN | BaiduPCS-Go login -bduss=xxx -stoken=yyy | 想用更精简的凭证 |
| 交互式 | BaiduPCS-Go login | 临时体验,官方已不维护 |
Cookies 怎么抓:登录百度网盘网页版,打开开发者工具,切到 Network 标签刷新页面,找到任意一个请求,把请求头里 Cookie 字段的内容整段复制出来,原样包进引号。注意别漏了STOKEN,它是转存功能能正常工作的关键。
登录成功后程序会保存会话,下次启动直接接着用。
第三步:验证连接
执行who看当前账号,再执行quota看网盘空间:
BaiduPCS-Go who BaiduPCS-Go quota能正常输出账号和容量信息,说明你已经"联网"成功。现在输入help,程序会列出全部可用命令——这就是你接下来探索的地图。
网盘的日常操作:看、传、收
这一节对应三个高频动作:查看网盘里有什么、把文件拉下来、把文件传上去。 📂
像逛本地文件夹一样浏览网盘
命令设计刻意模仿了 Linux shell,上手几乎零成本:
BaiduPCS-Go cd /我的资源 # 切换工作目录 BaiduPCS-Go ls # 列出当前目录内容 BaiduPCS-Go tree / # 从根目录看整棵目录树 BaiduPCS-Go search -r "课件" # 递归搜索文件名含"课件"的文件三个值得知道的细节:
cd支持..返回上级、/回根目录,和 shell 完全一致;- 路径支持通配符,
ls /我的*可以直接匹配目录,少敲不少字; - 交互模式下按 Tab 会自动补全命令和路径,长路径不用手敲。
建议你试试:用tree --depth 2只看两层结构,快速回忆一下网盘里到底堆了些什么。
下载:一条命令,多个文件
下载命令是download,简写d。它支持单文件、整个目录、甚至多个路径一起下:
BaiduPCS-Go d /我的资源/1.mp4 # 下载单个文件 BaiduPCS-Go d /我的资源 # 下载整个目录 BaiduPCS-Go d /文档/a.pdf /文档/b.pdf # 一次下载多个文件默认保存到程序目录下的download/文件夹,同名文件自动跳过,下载中断后可以续传。想改保存位置,用--saveto:
BaiduPCS-Go d /我的资源/1.mp4 --saveto="D:/Downloads"路径里的斜杠统一用/,别写 Windows 风格的反斜杠。
建议你试试:挑一个不大的文件下载,观察进度输出,感受一下并发下载的实际效果。
上传:从本地到网盘
上传命令是upload,简写u,基本格式是"本地路径…+ 网盘目标目录":
BaiduPCS-Go u /home/user/backup.tar.gz /备份上传采用分片并行,单个文件最大支持 128G。几个常用参数:
--norapid:跳过秒传检测,网络异常时尝试;--policy:同名文件的处理策略,可选skip(跳过)、overwrite(覆盖)、rsync(只覆盖大小不同的同名文件),默认跳过;- 传整个目录直接把本地路径换成目录名即可,例如
BaiduPCS-Go u /home/user/docs /备份。
建议你试试:把一个文件夹传到网盘,再原样传一次,观察默认的 skip 策略是怎么"拒绝"同名文件的。
转存:把别人的分享直接搬进你的网盘
这是本版本相对原版最值得关注的能力,实现在baidupcs/transfer.go模块里。它模拟了网页端转存的完整流程,自动处理分享页校验、提取码验证、文件信息提取,最终把资源落进你的网盘。 🔁
一条命令完成转存
BaiduPCS-Go transfer "https://pan.baidu.com/s/1VYzSl7465sdrQXe8GT5RdQ" "704e"如果链接本身带了提取码,第二个参数可以省略:
BaiduPCS-Go transfer "https://pan.baidu.com/s/1VYzSl7465sdrQXe8GT5RdQ?pwd=704e"注意转存的目标位置是当前工作目录,所以先cd到想去的地方再转存。
转存后的两个可选动作
--download:转存完直接开始下载到本地默认目录;--collect:分享里包含多个文件/目录时,先归拢到一个文件夹再转存,避免散落一地。
一个诚实的提醒:早期版本支持的秒传链接转存,因为官方接口调整已经停止,现在transfer处理的是常规分享链接。判断版本是否最新,直接跑BaiduPCS-Go update检测。
建议你试试:拿一个别人分享的链接做一次转存,你会发现整个流程只需敲一次回车。
分享、离线下载、回收站:把网盘玩得更明白
这些是容易被忽略、但关键时刻很顶用的能力。 🧰
自己发起分享
share命令支持自定义提取码和有效期:
BaiduPCS-Go share set /我的资源 -p 1234 -period 7 # 分享7天,提取码1234 BaiduPCS-Go share list # 查看已分享的内容 BaiduPCS-Go share cancel <shareid> # 按分享ID取消离线下载
offlinedl(简写od)支持 http/https/ftp、电驴和磁力链协议,适合"不想占本地带宽"的场景:链接丢给网盘,让它自己慢慢拉:
BaiduPCS-Go offlinedl add -path=/下载 http://example.com/file.zip BaiduPCS-Go offlinedl list # 查看任务列表 BaiduPCS-Go offlinedl query 12345 # 查询某个任务的实时状态回收站
删除的文件先进回收站,随时可以反悔:
BaiduPCS-Go recycle list # 列出回收站内容 BaiduPCS-Go recycle restore <fs_id> # 按fs_id还原文件 BaiduPCS-Go recycle delete -all # 清空回收站(不会二次确认!)多账号切换
程序支持同时保存多个账号,用su切换:
BaiduPCS-Go loglist # 列出所有已登录账号 BaiduPCS-Go su # 按提示选择要切换的账号个人号和工作号分开管理,互不干扰。
建议你试试:跑一次od add加个磁力任务,观察任务状态的变化,感受"网盘替你下载"的省心。
让脚本替你干活
命令行工具的终极价值在于可编程。把常用操作写进脚本,配合定时任务就能全自动执行。下面是一个"每天备份日志到网盘"的雏形:
#!/bin/bash # 每日备份:把本地日志目录上传到网盘 /备份/YYYYMMDD BACKUP_SRC="/var/log/myapp" REMOTE_ROOT="/备份/$(date +%Y%m%d)" BaiduPCS-Go login -cookies="$BAIDU_COOKIES" BaiduPCS-Go upload "$BACKUP_SRC" "$REMOTE_ROOT"把 Cookies 存进环境变量BAIDU_COOKIES,再用 crontab 定时执行,网盘就成了你的自动备份仓库。批量收集分享资源同理:把"链接 提取码"逐行写进文本文件,用 shell 循环逐条调用transfer,循环里加一点合理间隔,避免请求过于密集。
命令足够"原子",这正是它能嵌入任意脚本的原因。 🤖
建议你试试:翻翻自己最近重复过两次以上的手动操作,看能不能用一行命令替换掉。
调参指南与避坑清单
关键配置项
配置用config命令查看和修改:
BaiduPCS-Go config # 查看全部配置 BaiduPCS-Go config set -savedir D:/Downloads # 设置默认下载目录 BaiduPCS-Go config set -cache_size 64MB # 调整下载缓存 BaiduPCS-Go config set -upload_policy rsync # 设置上传同名文件策略 BaiduPCS-Go config reset # 恢复默认配置关于并发参数,官方给过非常直白的建议:普通用户把max_parallel和max_download_load都设为 1。盲目调大线程只会在短时间内提速,随后极大概率触发限速,导致账号在几个客户端里都接近零速。SVIP 用户可以把max_parallel调到 10~20、max_download_load设为 1~2,实验表明能稳定满速。简单说:这个工具不承诺给普通用户提速,别拿账号去赌线程数。
上传异常时,可以试试更换pcs_addr(已知地址有pcs.baidu.com、c.pcs.baidu.com、c2.pcs.baidu.com等)。v3.9.8 之后上传支持动态获取服务器,理论上不用手动配置;如果坚持用固定地址,打开fix_pcs_addr即可。 🛡️
避坑清单
- Cookies 失效:登录失败多半是凭证过期,重新抓一次 Cookie 即可;用 BDUSS 登录时记得同时提供 STOKEN,否则转存功能会报错。
- 下载没速度:先检查并发参数是不是调得过大,再确认
pcs_addr配置,换过服务器地址后重启程序生效。 - 上传报错:文件名里的特殊字符是第一嫌疑;其次试试
--norapid跳过秒传检测。 - 秒传链接:转存只支持常规分享链接,
export这类秒传相关功能已随官方接口调整失效,别在旧教程里浪费时间。 - 破坏性命令:
recycle delete -all、offlinedl delete -all都不会二次确认,敲之前想清楚。 - 限速风险:普通用户调高并发反而更容易被限速,这一点值得反复强调。
接下来做什么
BaiduPCS-Go 的价值一句话概括:把网盘从"网页里那个要不停点鼠标的东西"变成"终端里随时可调用的命令"。它不会让你的下载变快,但能让你的操作变快、变可控、变可重复。
下一步不用贪多。今天先完成一件事:登录账号,然后完整走一遍"下载一个文件 → 上传一个目录 → 转存一个分享链接"这三个动作。三个命令跑通,你就已经掌握了它八成的高频用法。
更完整的命令说明和 API 细节都在项目的 docs 目录里,遇到不懂的随时敲help。动手试一次,比看十篇教程都有用。
【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考