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

时间:2009-08-06 14:42:44

标签: search function bash

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

find . -name "*" -exec grep -il "search term" {} \;

我想把它变成一个函数,我可以放入我的.bashrc并从我的shell调用,而不需要记住整个事情,但我无法让它工作。这就是我到目前为止所做的:

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

有人可以帮忙吗? 非常感谢!

6 个答案:

答案 0 :(得分:4)

alias ff='grep -irl'

执行相同的操作,但更简单,并为每个文件停止不必要的进程创建。

答案 1 :(得分:2)

嗯,你可以这样做:

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

但这是荒谬的,不仅仅是因为迈克亚瑟指出的grep -r,而是因为-name "*"条款与完全没有任何效果完全相同。如果你打算做这样的事情我会推荐的是:

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

答案 2 :(得分:2)

有可能,您需要ack实用程序。它有点像你描述的功能,更强大。它在Debian和Ubuntu存储库中可用,名称为“ack-grep”。

答案 3 :(得分:1)

find -exec具有有限的缓冲区,并且在技术上比使用xargs更慢。

alias ff ='find。 | xargs grep -il'

当您搜索大量文件时,

会更好。

答案 4 :(得分:0)

试试这个:

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

答案 5 :(得分:0)

或者,您可以使用ack。如果您使用源代码管理,它会有很大帮助。

ack -il <term>
    <=>
grep -ril <term> .