终端里的两份答案:并排审查 Claude 与 GPT 的 Shell 单行命令
编辑器旁的终端:先给两份命令同一份约束
我每天都会遇到这种小任务:找出哪些源码还留着待办标记,或者清掉本地积攒的缓存。手写不难,交给模型也快;真正费时间的是确认它有没有偷偷扩大操作范围。单行命令越短,越容易让人跳过审查。
这次把 Claude Sonnet 5.5 与 GPT-6.1 Sol 放在同一张审查表上。先说明边界:下面是用于比较的示例候选方案,不是实际调用记录,也不是模型性能榜单。我们比较命令本身,不把某种写法包装成模型的固定性格。
统一环境是 Linux、Bash、GNU find、GNU xargs,以及已安装的 ripgrep。统一要求是:解释依赖,处理带空格的文件名,不使用 sudo,涉及删除必须先预览。换成其他系统,应重新检查工具版本和参数。
查找待办标记:直接搜索还是串起两个进程
任务一:从当前项目中找出包含 TODO 的 TypeScript 文件,只输出文件名,遵循 ripgrep 默认的忽略规则。这里没有要求只扫描 Git 已跟踪文件,也没有要求包含隐藏目录。
Claude 侧示例:rg -l -g '*.ts' -- 'TODO' .
GPT 侧示例:rg --files -g '*.ts' -0 . | xargs -0 -r rg -l -- 'TODO'
第一条直接把文件筛选交给搜索工具;第二条先生成文件列表,再把它交回搜索工具。两条都能处理路径中的空格,第二条还用空字符分隔路径,并用 GNU xargs 的 -r 避免空输入时启动搜索。
但这道题并不需要管道。第二条增加了一个进程、一项 GNU 参数依赖,以及额外的退出状态解释成本。没有匹配时,rg 返回非零状态并不一定意味着故障;把命令塞进自动化脚本之前,两种写法都要明确如何处理这个状态。
这一轮我选 Claude 侧示例。不是因为字符更少就更好,而是它没有引入任务不需要的中间层。若需求改成对文件列表做额外处理,管道才可能值得保留。
清理七天前的缓存:一分钟和一天不是同一个边界
任务二:预览当前目录下 .cache 中修改时间超过七天的普通文件,确认后再删除。这里的七天指经过的时间,不是日历上的日期;符号链接也不应被当成普通文件删除。
Claude 侧示例:find ./.cache -type f -mmin +10080 -print
GPT 侧示例:find ./.cache -type f -mtime +7 -print
两条都限制了起点和文件类型,也都只是预览。但时间含义不同。GNU find 会对时间单位取整,-mtime +7 实际匹配已满八天的文件,不能直接等同于超过七天。-mmin +10080 更接近需求,不过仍有分钟取整带来的边界误差。
这一轮仍选 Claude 侧示例,但不直接批准删除。如果业务要求精确到秒,我会让模型改用明确的参考时间,而不是接受近似条件。确认预览后,可以把 -print 换成 -delete;不过预览与删除是两次遍历,其间文件可能变化,所以这套方法只适合允许这种变化的本地缓存,不适合共享生产目录。
在 Fluxo 切换模型:固定环境,别把接入差异算进成绩
做这种并排比较,我会保存提示词、候选命令、工具版本和测试目录,而不是靠聊天窗口里的印象打分。Fluxo 用一个密钥和一个基础地址 https://api.fluxorelay.com 接入 Claude、GPT,以及 Gemini、DeepSeek、Kimi、GLM、Qwen、Grok 等模型系列,切换时少改一层配置。
它可配合 Claude Code、Codex、Gemini CLI 和任何 OpenAI SDK 使用;具体可用参数仍应按客户端与模型能力确认。费用按实际 token 计量,包含缓存读取与写入,没有月费,因此比较成本时也要记录缓存用量,不能只数回答长度。
如果你也想用自己的仓库重复这套检查,可以创建一个 Fluxo 账户。邀请的人付费后,邀请者可获得推荐分成;这项机制不应影响技术判断。需要帮助时,登录后在联系页面留言即可。
本次判定:选直接搜索和分钟级预览,不按模型名字放行
明确结论:在本文两组候选方案里,Claude 侧示例胜出,因为搜索链路更短,缓存时间条件也更接近题意。这个结论只覆盖这些示例,不能外推成 Claude 总比 GPT 更会写 Shell。
实际工作中,我会选择能说明依赖、守住路径边界、先给预览的答案。模型负责起草,终端里的执行权仍在开发者手里;任何一条准备进入历史记录的删除命令,都值得再读一遍。