系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

pbcopy

把标准输入写入当前用户的 macOS 剪贴板,供其他应用粘贴。

补充说明

pbcopy 从 stdin 读取数据,放进当前登录用户的通用剪贴板(general pasteboard),再由其他应用粘贴。常见用法是 cat 文件 | pbcopy、pbcopy < 文件,或把命令输出、SSH 公钥直接送进剪贴板。它不需要 root,也没有输出,成功时只返回退出码。

边界:剪贴板属于当前图形登录用户,SSH 到一台 Mac 再执行 pbcopy,不会写到你本地电脑的剪贴板;要在本地粘贴远端输出,应在本地执行 ssh 主机 'cat 文件' | pbcopy。pbcopy 以文本为主,图片、二进制内容可能被破坏,二进制先 base64 再复制。

常用示例

# 1. 把一段文本放进剪贴板
% printf 'hello from macOS\n' | pbcopy

# 2. 上传 SSH 公钥到 GitHub 前,直接复制文件内容
% pbcopy < ~/.ssh/id_ed25519.pub

# 3. 复制最近 20 条命令历史,方便粘贴到文档
% fc -ln -20 | pbcopy

# 4. 清空剪贴板
% pbcopy < /dev/null

# 5. 把远端文件带到本地剪贴板;pbcopy 必须在本地执行
% ssh devbox 'cat /etc/hosts' | pbcopy

# 6. 复制前先确认内容长度,避免把超大日志塞进剪贴板
% wc -c ~/Downloads/report.log
% pbcopy < ~/Downloads/report.log

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. 为什么 ssh mac 'pbcopy < file' 不能把内容放进你本地电脑的剪贴板?
  2. 想把本地剪贴板清空,应该怎么写?pbcopy 会输出成功信息吗?
  3. 复制二进制文件时为什么可能损坏?正确做法是什么?
答案
  1. pbcopy 操作的是执行它的那台 Mac 的当前用户剪贴板;远端执行只写远端,本地应在管道末端执行 pbcopy。
  2. 用 pbcopy < /dev/null;成功时通常没有输出,只能看退出码。
  3. pbcopy 按文本处理,二进制字节可能被改写;先 base64 编码再复制,接收端解码。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令