“搜索”命令的工作原理是什么/如何工作?

时间:2017-12-05 15:32:29

标签: linux search linuxmint mint

简单地说,我可以使用'search'命令搜索文件内容吗?如果是这样,怎么样?

我试图找到一种更简单的方法来搜索Linux Mint中的文件内容而不是键入

grep -rnw . -e 'my search text' 

我刚注意到有一个'搜索'命令

$ which search
/usr/local/bin/search

然而,当我查看其帮助文本时;我得到了这个:

usage: search [arguments] [options]
arguments:
     for text
     in directory

我无法理解这一点,我尝试传递的任何论据似乎都不可避免地导致我使用相同的文本。

也没有手册页条目,我也试过了。

我试过了。

$ search "my search text" .
$ search . "test"
$ search . . . .

缺乏让这个工作的方法,我可能会选择别名。可悲的是,'搜索'已经被采取了..

2 个答案:

答案 0 :(得分:0)

我刚做了一个干净的安装,然后去看看这个'搜索'可执行文件。事实证明,它实际上是一个带有以下结果命令的shell命令:

find $directory -type f -exec grep -$case$verbose "$text" --color=auto -n {} \;

上面的四个$变量分别填充了搜索目录,区分大小写,详细程度以及最终单字搜索文本。

我不知道为什么这个工具存在,但正如手册所示,你只能用它来搜索一个单词(没有空格),并且在指定的后续目录中。

因此,寻找(不区分大小写)且没有详细程度的示例将是:

search for bar in ~/home/foo

该指令显然已于2008年在Linux铸币厂中添加,如in this post所示,其中也详细说明了其用途。

答案 1 :(得分:-1)

圣洁的烟雾。我从未想过你可能需要如此字面地解释一本手册;

$ search for text in directory
find: ‘directory’: No such file or directory

但它仍然不能完全确定如何使用它;我很困惑它是否支持正则表达式/通配符等。

对于带有

的简单不区分大小写的文本,我的确得到了很好的结果
~/mytargetfolder/ $ search for singlewordspacesdontwork in .

然而,只要有空格就会中断,用“,\或”来逃避它是不行的。

鉴于我的经验,我建议转向这个命令。

我还建议不要在StackOverflow上给出答案,或者提出类似这样的问题,因为我似乎刚刚收到了一些关于downvotes的案例?