【问题标题】:UNIX: Physical Location of "wc" command. It ain't "/bin"UNIX:“wc”命令的物理位置。它不是“/bin”
【发布时间】:2010-10-12 00:18:03
【问题描述】:

这已经是树桩了。我用 C 语言编写了一个 shell 程序,允许用户执行多个命令。根据我目前的研究,“ls”和“cat”等所有命令都位于“/bin/”中。

“wc”未列在此目录 -“/bin”中。如果我启动一个终端,我可以输入“wc fileName”并且它可以工作。我从“/”目录运行“find .wc”,还是找不到“wc”命令。

有人知道“wc”藏在哪里吗?

【问题讨论】:

  • 只想指出正确的find 命令行应该是find / -name wc

标签: command location wc


【解决方案1】:

尝试在你的 shell 中输入which wc...应该会告诉你它在哪里。

在我的机器上它/bin/

但是,如果您只想自己完成路径解析,您可以使用system() 函数(有关更多信息,请参阅man 3 system)。正如您在文档中所读到的,这与为路径解析调用 Bourne shell(或符号链接指向的任何地方)实际上是相同的,所以如果您不想要这种开销,您将要坚持使用任何方法您当前正在使用。

【讨论】:

    【解决方案2】:

    我试过whereis wc,我在/usr/bin/wc得到它

    【讨论】:

    • 谢谢。我刚才得到了同样的结果。
    【解决方案3】:

    如果您不想担心各个实用程序在哪里,但确实想避免调用system 所涉及的开销,那么您应该尝试中间层函数execvp,或者它的朋友之一(也在该页面上列出)。可悲的是,没有execvpe

    【讨论】:

      【解决方案4】:

      您可以尝试使用whencewhichwhereis 来查找执行路径中的任何程序,具体取决于您使用的shell。

      wc 之类的实用程序通常位于/bin/usr/bin,或/usr/local/bin/usr/site/bin 之类的地方。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-10
        • 1970-01-01
        • 2014-10-10
        • 2016-01-03
        • 2014-11-11
        • 2014-02-26
        • 2013-03-20
        • 2015-07-30
        相关资源
        最近更新 更多