【问题标题】:Why not add a base16 into coreutils?为什么不将 base16 添加到 coreutils 中?
【发布时间】:2021-12-20 08:17:03
【问题描述】:

base32 和 base64 CLI 实用程序都是 gnu coreutils 的一部分。那么,为什么不添加一个 base16 呢?

【问题讨论】:

    标签: linux gnu-coreutils


    【解决方案1】:

    写了一个脚本,也有同样的想法……

    刚刚查看了 coreutils 中的新闻。 https://github.com/coreutils/coreutils/blob/master/NEWS

    看起来他们在 8.31 (2019-03-10) 版本中添加了 basenc

    ** 新命令 - 添加了 basenc 以补充现有的 base64、base32 命令, 并使用各种常见编码对可打印文本进行编码和解码: base64,base64url,base32,base32hex,base16,base2,z85.

    拥有一个命令是有意义的...我在过去 xxd、hexdump 等中以其他方式完成了此操作...

    所以他们确实做到了。只需使用basenc --base16

    *编辑,其实这三个源代码都是一样的 https://github.com/coreutils/coreutils/blob/master/src/local.mk

    src_base64_SOURCES = src/basenc.c
    src_base64_CPPFLAGS = -DBASE_TYPE=64 $(AM_CPPFLAGS)
    src_base32_SOURCES = src/basenc.c
    src_base32_CPPFLAGS = -DBASE_TYPE=32 $(AM_CPPFLAGS)
    src_basenc_SOURCES = src/basenc.c
    src_basenc_CPPFLAGS = -DBASE_TYPE=42 $(AM_CPPFLAGS)
    

    【讨论】:

      【解决方案2】:

      GNU coreutils 是免费的。这是人们非常非常努力的工作,他们正在免费做。您完全免费使用它。你捐了多少钱?捐赠它们。如果你想要什么,就付钱给他们。

      为什么不将 base16 添加到 coreutils 中?

      它需要工作,包括实施,但主要是永无止境的维护。如果不需要某些东西,最好不要添加它并减少工作并专注于重要的事情。维护当前命令,以便它们与所有系统保持同步并保持一致和工作,这一点更为重要。甚至有人说,(尤其是在开源领域)项目负责人最重要的是决定拒绝哪些功能,而不是添加哪些功能。

      那么,在 GNU coreutils 中实现 然后无休止地维护 base16 实用程序,您将支付多少费用?

      【讨论】:

        【解决方案3】:

        在我看来,这是因为十六进制编码使被编码的数据量增加了一倍。这种方法被认为不合适。
        P.S.Here 是提供 base16 编码的控制台工具的 C# 示例。应用程序输入可以从文件、命令行、键盘或根据所谓的“Unix 方式”软件重定向来自另一个控制台应用程序的输出来获得。不幸的是,它使用 Windows API,但可以针对 Linux 重新设计。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-03-10
          • 1970-01-01
          • 1970-01-01
          • 2014-05-19
          • 2011-01-30
          • 2018-12-02
          • 1970-01-01
          相关资源
          最近更新 更多