pacman 的“--refresh”和“-y”选项之间的语音联系是什么?

pacman 的“--refresh”和“-y”选项之间的语音联系是什么?

在 pacman 中,--refresh-y是相同的选项。但它们之间的语音关系如何呢?有助记词吗?

作为比较:对于许多二进制文件来说,-f--force.很明显“f”是如何从“force”派生出来的:)

答案1

据说有计算机科学中的两个难题。其中之一就是命名事物。这就是一个效果。

数据库同步功能最初是pacsync在 1.23 中作为单独的命令添加的。该命令随后被合并到pacman2.0 版本中,并pacman获得了许多新选项,包括--sync/ -S。在内部,这仍然是在 a 中处理的pacsync.c,刷新数据库的操作称为同步(syncold 的子命令pacsyncsync_synctree()new 中的函数pacsync.c)。现在我们已经有了一个主--sync选项,那么我们如何处理同步数据库的子选项呢?我推测:

  • 开发人员决定将其称为--refresh一个长选项,一个合理的名称,
  • 但在其他方面,通过将其视为第二个--sync选项来尊重代码中以同步命名的事物,因为这些事物明智地命名
  • 因此,正如通常所做的那样,当两个长选项具有相同的第一个字符时,移动到短选项的第二个字符-y

作为支持这一点的一个因素,该组合将成为-Sy“sync”的前两个字母。

选项处理的部分代码:

while((opt = getopt_long(argc, argv, "ARUQSTYr:vhscVfnoldpiuy", opts, &option_index))) {
    if(opt < 0) {
        break;
    }
    switch(opt) {
...
        case 'y': pmo_s_sync = 1; break;

整件事发生在大约 15 年前(2002 年),我在搜索中找不到任何在线讨论,但我确信这就是发生的事情。

相关内容