GNU coreutils 里那些被拒绝的功能请求
来源: gnu.org — 日期未标注
概述
coreutils 官方整理了一份「被拒绝的功能请求」清单,覆盖 cat、chmod、cp、cut、date、dd、df、du、join、ls、mv、rm、shred、sort、stat、各类校验和命令、touch、uniq、wc 等十几条工具。每一条都列出请求内容与拒绝理由,共同的主线是 Unix 工具箱的克制:能用现有工具组合实现的,就不新增选项;能用 find、awk、sed、rsync、pv 表达的,就留给它们;会破坏既有约定或需要文件系统无关接口的,直接不做。作者在开头说明,coreutils 上最难的工作之一其实是知道该拒绝什么,并给贡献者一个像样的理由。
核心要点
- 这份清单本身就是 coreutils 维护哲学的例子:最难的工作之一是知道该拒绝什么,并给出合适的理由。
- 大量请求被驳回的理由是用 sed、awk、find、rsync、pv 等现有工具组合已经足够,例如 cp --resume、du --sort、cut -f2,1 重排字段。
- 涉及跨文件系统语义或安全边界的改动一律保守,如 copyfile() 级别的扩展属性复制、rm --parents 反向删除。
- 也有一类理由是设计一致性:拒绝为同一件事提供两种写法,比如 cp,mv --to 与 ls 的 UTF-8 箭头输出。
金句
coreutils 上最难的工作之一,是知道该拒绝什么,并给贡献者一个合适的理由。
👍 0
👎 0
返回 Lobsters 首页