Bash ';查找/用户…';有效,但';找到…';和';查找…';不要。为什么?
我不明白为什么前两次不行,第三次不行。在等待了一段时间错误消息后,中断发生了。我以前成功地使用过前两种模式,只是在搜索字符串上有所不同Bash ';查找/用户…';有效,但';找到…';和';查找…';不要。为什么?,bash,find,Bash,Find,我不明白为什么前两次不行,第三次不行。在等待了一段时间错误消息后,中断发生了。我以前成功地使用过前两种模式,只是在搜索字符串上有所不同 MBP-WWG:RJG WGroleau$ find . -type f -exec grep -il Durango "{}" \; grep -v Library find: grep: unknown primary or operator MBP-WWG:RJG WGroleau$ find ~ -type f -exec grep -il Durang
MBP-WWG:RJG WGroleau$ find . -type f -exec grep -il Durango "{}" \; grep -v Library
find: grep: unknown primary or operator
MBP-WWG:RJG WGroleau$ find ~ -type f -exec grep -il Durango "{}" \; grep -v Library
find: grep: unknown primary or operator
MBP-WWG:RJG WGroleau$ find /Users -type f -exec grep -il Durango "{}" \; > /tmp/tmp
^C
哪个find
返回/usr/bin/find
(MacOS)
您有第二个grep
命令挂起导致麻烦。也许你是想把第一次的结果传给第二次
find . -type f -exec grep -il Durango "{}" \; | grep -v Library
# ^
FWIW,GNUgrep
可以使用-R
/-R
递归搜索。无需使用find
grep -Ril Durango . | grep -v Library
顺便说一句,你可以替换
find . -type f -exec grep -il Durango "{}" \;
借
-r
表示递归和-s
静默。有关详细信息,请参见man grep
。它可以工作,因为您可以找到所有文件
因此,最后的命令将是:
grep -rs -il Durango . | grep -v Library
我不明白你为什么要添加
-s
。您试图抑制的错误消息是什么?顺便说一句,您的命令和OP的一个区别是grep-r
将跟随符号链接,而find
不会跟随符号链接(除非您指定-L
选项)。这可能对OP的情况有影响,也可能没有影响。
grep -rs -il Durango .
grep -rs -il Durango . | grep -v Library