告别鼠标点点点,BaiduPCS-Go 把百度网盘搬进命令行
【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go
你一定经历过这种抓狂:想从百度网盘下一个文件,网页版先提醒你"请下载客户端",装完客户端,多账号切换又要反复退出登录;想把别人分享的资源存进来,还得复制链接、开浏览器、输提取码、点保存,一次两次还能忍,一天二十次呢?BaiduPCS-Go 是一款 Go 语言编写的百度网盘命令行客户端,它把下载、上传、转存、批量操作全部压缩成一条条命令,让你像操作本地文件夹一样操作网盘。带着一个问题读下去:图形界面都做不好的事,命令行凭什么做得更好?
一个真实场景:凌晨两点,资源自己进了网盘
老周是个"资源收藏家",每天从各个群里捞回几十条带密码的百度网盘分享链接。过去他的流程是:复制链接 → 打开浏览器 → 输入提取码 → 保存 → 复制下一条,一天两小时就这么没了。
现在他的流程变了:把链接和密码按"链接 密码"的格式写进一个文本文件,跑一段十几行的脚本让程序逐条转存,每转完一条自动停两秒,他自己去泡咖啡。半夜两点,服务器上的定时任务再把当天日志上传到网盘备份,全程无人值守。
这个工具真正解决的,正是图形界面最不擅长的两件事:批量重复操作和无人值守自动化。看懂这个,你就知道命令行版本的价值在哪了。
三步跑通第一个命令:装好、登录、转存一次
我们用一个贯穿全篇的例子:把同事分享的"项目资料"文件夹(提取码4xk2)转存到你自己的网盘。
第一步,装好程序。直接下载对应平台的预编译版本即可:Windows 用户拿到 exe 双击就能跑,Linux / macOS 用户下到二进制后加执行权限。想自己折腾源码,克隆后编译也很简单:
git clone https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go cd BaiduPCS-Go go build第二步,登录账号。登录方式有三种:交互式登录(按提示输入账号密码)、BDUSS+STOKEN 组合、以及最省事的完整 Cookies 登录:
BaiduPCS-Go login -cookies="BDUSS=xxxxx; STOKEN=yyyyy; BAIDUID=zzzzz; ..."这里有个新手必踩的坑,请划重点:想用转存功能,登录时一定要带上 STOKEN。原因是转存本质上是模拟网页端的操作,STOKEN 相当于网页端的会话凭证,缺了它,其他命令都能用,唯独transfer会报错。用 Cookies 登录时,确认复制的内容里包含 STOKEN 字段;用 BDUSS 登录则记得加-stoken参数。登录成功后可以用who确认当前账号,quota看看网盘剩余空间。
第三步,转存第一个分享链接。程序支持两种调用方式:直接BaiduPCS-Go <命令>单条执行,或者不带参数进入交互模式(提示符长这样:BaiduPCS-Go:/ 用户名$,支持 Tab 补全路径和上下键翻历史命令,体验接近本地 shell)。转存命令如下:
BaiduPCS-Go mkdir /资源收藏 # 先建个目标文件夹 BaiduPCS-Go cd /资源收藏 # 切到目标目录 BaiduPCS-Go transfer "https://pan.baidu.com/s/1abcDEFghIJ?pwd=4xk2"看到"转存成功"就说明你已完整跑通了第一个工作流。两个小细节:提取码既可以写在链接的?pwd=里,也可以作为第二个参数单独传(transfer 链接 4xk2);转存只会保存到当前工作目录,所以转存前先cd到位。顺带一提,早期版本支持秒传链接转存,但官方接口变动后已失效,看到"秒传已不再被支持"的提示是正常的,不用纠结。
高频操作速查:六组命令覆盖日常网盘管理
不用记全部命令,日常真正高频的就下面六组,按"场景 → 命令 → 注意点"过一遍:
| 场景 | 命令示例 | 注意点 |
|---|---|---|
| 找东西 | ls -size -desc /视频、search -r "报告"、tree --depth 2 | ls支持按时间/大小/名称排序;search只搜文件不搜目录 |
| 拿文件 | download "/视频/*.mp4" -p 8 | 支持通配符和整个目录下载,默认断点续传,重名文件自动跳过 |
| 放文件 | upload C:/本地/1.mp4 /视频 | 最后一个参数是目标目录;支持单文件最大 128G,分片上传 |
| 取资源 | transfer 链接 提取码 -collect | -collect把多个文件归整到一个文件夹;-download转存后直接下载 |
| 整理 | mkdir、mv、cp、rm | rm删除的文件进回收站可找回;mv单个文件时可当改名用 |
| 看家底 | quota、loglist、su | 支持多账号共存,su一键切换,不用退出重登 |
下载默认存到程序目录的download/文件夹,想改位置用config set -savedir D:/Downloads。上传同名文件有三种策略:skip(跳过)、overwrite(覆盖)、rsync(智能同步),可以每次传时用-policy指定,也可以config set -upload_policy设成全局默认。另外别忘了offlinedl命令——它支持 http/https/ftp/磁力链离线下载,看到磁力链接想直接拖回网盘的,一条命令搞定。
两个进阶玩法:批量转存与无人值守备份
玩法一:分享链接批量转存。把链接和密码按行存进links.txt,格式为"链接 密码",然后:
#!/bin/bash while IFS= read -r line; do link=$(echo "$line" | awk '{print $1}') code=$(echo "$line" | awk '{print $2}') BaiduPCS-Go transfer "$link" "$code" sleep 2 # 控制请求频率,避免触发风控 done < links.txt玩法二:无人值守备份。把上传命令挂进系统定时任务,服务器日志每天自动归档:
# 每天凌晨 2 点执行 0 2 * * * BaiduPCS-Go upload /data/logs "/备份/$(date +%Y%m%d)"两个边界提醒:第一,Cookies 就是账号的钥匙,别明文写进会被别人看到的脚本里,建议通过环境变量传入;第二,这类工具不提供超出官方客户端的下载提速,并发数设得再大也有上限,普通账号建议max_parallel和max_download_load都保持 1,SVIP 再根据带宽调到 10~20,别盲目堆数字。
想深入源码的话,转存这条链路从internal/pcscommand/transfer.go进入,核心实现落在baidupcs/transfer.go;下载引擎在requester/downloader/,上传在requester/uploader/,官方文档docs/README.md里有更完整的命令说明。
卡住了?三个高频问题的排查路径
问题一:登录成功,但转存报错。现象:transfer提示链接或提取码非法,其他命令却正常。原因:多半是登录时没带 STOKEN。解决:用完整 Cookies 重新登录,确认含 STOKEN 字段;或login -bduss=xxx -stoken=xxx重新绑定。
问题二:下载报 "user is not authorized" 或速度很慢。原因:locate 模式的接口对某些账号不友好。解决:先download -mode pcs换下载方式;再把max_parallel调低。如果提示直链获取失败,可以config set -user_agent "netdisk;2.2.51.6;netdisk;10.0.63;PC;android-android"换个 UA 试试。
问题三:上传一直失败。按顺序排查:先--norapid跳过秒传检测(秒传接口变动可能导致校验卡住);同名冲突就换-policy overwrite;文件名带特殊字符时config set -ignore_illegal忽略非法字符;如果你在海外 VPS 上,上传慢多半是网络绕路,config set -proxy_hostnames pan.baidu.com配合回国代理即可。
给你一条清晰的上手路线
别一上来就折腾配置和脚本,按这个顺序走:先login登录 → 用ls、cd、download把"看文件、下文件"跑熟 → 再用upload反向传一次 → 最后玩transfer和批量脚本。前两步花十分钟,你就能感受到命令行操作网盘那种"指哪打哪"的利落感。
图形界面把每一步都变成一次点击,而命令行把整条流程变成一条命令——这是它存在至今的理由,也是值得你花十分钟学会它的理由。
【免费下载链接】BaiduPCS-Goiikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考