Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 创建.bashrc函数以在所有文件中搜索特定字符串_Search_Function_Bash - Fatal编程技术网

Search 创建.bashrc函数以在所有文件中搜索特定字符串

Search 创建.bashrc函数以在所有文件中搜索特定字符串,search,function,bash,Search,Function,Bash,我有一个有用的小命令,可以在所有文件和子目录中搜索特定字符串: find . -name "*" -exec grep -il "search term" {} \; 我想把它变成一个函数,我可以把它放在.bashrc中,从shell调用它,而不需要记住整个过程,但我无法让它工作。这就是我到目前为止所做的: function ff() { find . -name "*" -exec grep -il $@ \{\} \\\; } 有人能帮忙吗? 非常感谢 alias ff='grep -i

我有一个有用的小命令,可以在所有文件和子目录中搜索特定字符串:

find . -name "*" -exec grep -il "search term" {} \;
我想把它变成一个函数,我可以把它放在.bashrc中,从shell调用它,而不需要记住整个过程,但我无法让它工作。这就是我到目前为止所做的:

function ff() { find . -name "*" -exec grep -il $@ \{\} \\\; }
有人能帮忙吗? 非常感谢

alias ff='grep -irl'
执行相同的操作,但要简单得多,并停止为每个文件创建不必要的进程。

好的,您可以这样做:

function ff() { find . -name "*" -exec grep -il $@ {} ';'; }
但这是荒谬的,不仅因为迈克·阿瑟指出的
grep-r
,而且因为
-name“*”
子句的效果完全一样。如果你打算这样做,我建议你:

function ff() { find . -type f -exec grep -il $@ {} ';'; }

很可能,你会喜欢这个实用程序。它有点像您描述的功能,功能更强大。它在Debian和Ubuntu存储库中以“ack grep”的名称提供。请尝试以下方法:

 $ ff ()  {      find . -name "*" -exec grep -il $@ {} \;; }

find-exec的缓冲区有限,技术上比使用xargs慢

别名ff='find.|xargs grep-il'


当您搜索大量文件时,将工作得更好。

或者,您可以使用。如果您使用源代码管理,这将非常有帮助

ack -il <term>
    <=>
grep -ril <term> .
ack-il
格雷普-瑞尔。

我觉得不错:)。为什么我要用find在那里迷失在时间的迷雾中…-谢谢在Solaris中不工作,因为Solaris似乎没有grep的递归选项。在这种情况下,查找通常是一种方法。