【问题标题】:Find command in linux在linux中查找命令
【发布时间】:2012-06-20 17:24:27
【问题描述】:

好的,我正在运行这样一个简单的命令:

find / -name ssh | grep bin

输出是这样的:

/usr/bin/ssh

现在我想让它在我 cd 时看起来像这样

/usr/bin/

我不知道如何让它变得聪明,因为我可以强制它只为这个工作,但是当我想在另一台机器上运行相同的代码并且 ssh 的位置在其他地方时怎么办。

【问题讨论】:

  • 您是否尝试在您的路径中查找 ssh?该服务器是否安装了类似 mlocate 的东西?
  • 我看到没有人提出明显的问题:你为什么要cd 到 ssh 可执行文件的位置?
  • 嗯,使用 ssh 是一个简单的例子
  • 好的,但是我看不需要cd到对应的目录。一旦你找到它,就执行它。

标签: linux shell unix find


【解决方案1】:

你不想要这个吗?

cd $(dirname $(which ssh));

【讨论】:

  • 解释一下上面每个位的作用如何?
  • 嗯,dirnamewhichcd 是什么?或者贝壳……可能是需要解释的贝壳,嗯……
  • 我在想分号。
  • 啊,那是因为我有在一行上运行多个命令的肮脏,肮脏的习惯。我责怪我两个月前在我的输入键上洒了柠檬水。
  • 如果你使用;而不是&&,这只是一个肮脏的习惯
【解决方案2】:

你要找的是 dirname 吗?

$ dirname `find / -name ssh | grep bin | head -1`
/usr/bin

head -1 部分只是为了确保只有 1 个东西被传递给 dirname,否则它将失败。

【讨论】:

    【解决方案3】:
    find / -name ssh|grep bin|xargs dirname
    

    【讨论】:

      【解决方案4】:

      您可以使用 xargs 来获取命令的目录部分。

      find / | filter1 | xargs -I_VAR_ dirname _VAR_
      

      【讨论】:

        【解决方案5】:
        find / -name ssh | grep bin|sed "s/ssh//g"
        

        【讨论】:

          【解决方案6】:

          如果您要查找 ssh 命令所在的位置,您有多种选择:

            which ssh
          

            whereis ssh
          

          将为您提供此信息(which 将为您提供一条路径,而whereis 将包含所有引用 ssh 的路径)

          至于find命令,更改你在find命令中指定的(起始)目录:

            find /usr/bin -name ssh
          

          将在 /usr/bin 目录中开始搜索。

          这是你想要做的吗?我不是 100% 确定我理解了你帖子的最后一部分。如果没有,您可以考虑改写它吗?

          【讨论】:

          • 看到它甚至可能不在 /usr/ 目录中,它可能在任何地方。
          • 您不需要| grep bin,因为所有结果都包含bin
          • 也许是我缺乏经验,但问题是它可能不在 usr 目录中,这就是我的意思。就像它可能在 var 目录或其他目录中一样
          • @shade917 所以在/ 中开始搜索是正确的做法。我仍然不太确定您要做什么,如果您有任何澄清 cmets,您可能希望将它们放入您原来的问题中,因为并非每个人都阅读所有 cmets。您是否正在尝试查找给定命令的位置?为什么find 的输出一开始就不适合你?
          【解决方案7】:

          dirname 程序是 coreutils 的一部分,可用于去除路径名序列中的最后一部分:

          dirname `find / -name ssh | grep bin`
          

          会输出

          /usr/bin
          

          那么。

          【讨论】:

            猜你喜欢
            • 2012-09-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-09
            • 2018-05-04
            • 2017-03-21
            相关资源
            最近更新 更多