首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘'find /Users…’工作,但'find .…‘和'find ~…‘不要这样做。为什么?

‘'find /Users…’工作,但'find .…‘和'find ~…‘不要这样做。为什么?
EN

Stack Overflow用户
提问于 2019-08-31 23:11:23
回答 2查看 40关注 0票数 1

我不明白为什么前两个不起作用,而第三个运行。中断是在等待错误消息一段时间后发生的。我以前已经成功地使用了前两个模式,只是在搜索字符串上有所不同。

代码语言:javascript
复制
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

which find返回/usr/bin/find (MacOS)

EN

回答 2

Stack Overflow用户

发布于 2019-08-31 23:17:54

代码语言:javascript
复制
find . -type f -exec grep -il Durango "{}" \; grep -v Library
#                                             ^^^^^^^^^^^^^^^

您已经挂起了第二个grep命令,这会造成麻烦。也许你的意思是把第一个的结果传给第二个?

代码语言:javascript
复制
find . -type f -exec grep -il Durango "{}" \; | grep -v Library
#                                             ^

GNU grep可以使用-R/-r进行递归搜索。不需要使用find

代码语言:javascript
复制
grep -Ril Durango . | grep -v Library
票数 1
EN

Stack Overflow用户

发布于 2019-09-01 05:35:50

顺便说一句,你可以替换

代码语言:javascript
复制
find . -type f -exec grep -il Durango "{}" \;

通过

代码语言:javascript
复制
grep -rs -il Durango .

-r表示递归,-s表示静默。详情请参见man grep。它可以工作,因为你会找到所有的文件。

所以最后的命令是:

代码语言:javascript
复制
grep -rs -il Durango . | grep -v Library
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57739182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档