在mac终端中保存命令输出需用重定向或管道:1. >覆盖写入文件;2. >>追加内容;3. 2>&1 >file合并标准输出与错误;4. | tee实时显示并保存;5. | pbcopy复制到剪贴板。

在Mac终端中执行命令后,屏幕只显示结果而无法直接保存,想把ls、git log、curl响应这类输出永久留存以便复查或分享,必须通过重定向或管道机制写入文件。
用 > 直接覆盖保存输出
第一步:在命令末尾加一个空格,然后输入 【> 文件名】,比如 ls -la > file_list.txt。
这会把当前目录的详细列表完整写入 file_list.txt。如果该文件已存在,原有内容将被清空重写——【这是不可逆操作,旧内容彻底丢失】。
文件默认生成在当前工作目录,路径不写就是相对路径。
用 >> 追加保存,不覆盖历史
方法一:用两个右尖括号追加内容,例如 date >> log.txt。
每次运行都会把新一行时间戳加到 log.txt 最末尾,适合记录多次命令结果或日志累积。
方法二:如果目标文件不存在,>> 会自动创建;如果存在,就只在末尾写入,绝不会动前面的内容。
同时保存标准输出和错误信息
很多命令出错时,错误提示(stderr)不会出现在 > 捕获的文件里,比如 ls /missing | grep txt > result.txt 可能啥也不写进文件,因为 /missing 目录不存在,报错被丢掉了。
要一并捕获 stdout 和 stderr,必须写成:ls /missing 2>&1 > all_output.txt。
注意顺序不能颠倒:必须先 2>&1 把错误流合并到标准输出,再用 > 重定向整体——【顺序反了就只保存 stdout,stderr 依然打印在屏幕上】。
边看边存:用 tee 实时双路输出
① 输入 ps aux | tee process_list.txt,终端立刻显示全部进程,同时把相同内容写进 process_list.txt。
② 如果想保留已有内容,加 -a 参数:df -h | tee -a disk_usage.log。
③ tee 还支持一次写入多个文件:whoami | tee user.txt user_backup.txt,一条命令同步存两份。
这一步操作起来很简单,直接把文件拖进去就行。
用 pbcopy 把输出复制进剪贴板
执行 cat config.json | pbcopy,JSON 内容就进了系统剪贴板。
之后可在 TextEdit、VS Code 或任何地方按 Cmd+V 粘贴,适合临时摘取关键片段,不落地、不生成文件。
注意:pbcopy 只处理纯文本,二进制内容(如图片 base64)可能损坏,别用它传非文本数据。











