find $dir -type f -name '*.log' -exec grep -o $pattern {} \; 最后的{} \ 是什么意思?

2012-04-09 11:18:36 +08:00
 tomheng
4857 次点击
所在节点    问与答
18 条回复
gonbo
2012-04-09 11:35:58 +08:00
find $dir -type f -name '*.log' 这句得到的结果。

顺便一句,这种问题也上论坛问的话,真的需要考虑是否适合做coder。
csx163
2012-04-09 13:33:08 +08:00
楼上言重了,每个人都有自己不擅长的地方
ipoh
2012-04-09 13:37:26 +08:00
1楼的逻辑真搞笑,真的需要考虑是否适合做coder。
alvin2ye
2012-04-09 13:38:24 +08:00
前面找到的文件名
bxshi
2012-04-09 13:38:55 +08:00
就是一个占位符。
你可以理解为
`printf("%s", str);`
只不过str在前面,而且是运行结果生成的
bxshi
2012-04-09 13:41:26 +08:00
@gonbo 己知而彼不知的事情有很多啊。知识知道与否并不重要,怎样获取的知识也并不重要。

有心,有愿望去获取知识,并且没有过度自傲的话,就合适干很多事情的。
darasion
2012-04-09 13:43:12 +08:00
啊,看来,我也得考虑一下咯。
gonbo
2012-04-09 16:26:44 +08:00
不好意思踩到各位的G点了。
ipoh
2012-04-09 16:33:07 +08:00
够酸
fanzeyi
2012-04-09 16:45:29 +08:00
@gonbo 没事只是踩到了 #1 的 G 点.. 谁都有不会的东西嘛
fanzeyi
2012-04-09 16:46:00 +08:00
擦 看错人名了……
bhuztez
2012-04-09 16:47:32 +08:00
这种问题适合去 StackOverflow 问
lldong
2012-04-09 17:28:44 +08:00
樓主主問 ``{} \'' 什麼意思?@gonbo 好像只是說了``{}''的意義,還有那個``\''是做什麼的沒解釋呢?
delphiqin
2012-04-09 17:51:07 +08:00
这个应该这样理解:{} 和 \;
查看man手册find命令的-exec部分可以知道,{}是用来代替find命令找到的pathname的,其中规定-exec的表达式需要分号来结束。而分号之所以写成\;是因为分号在bash里有它的作用,是用来标示命令结束的(命令是单行的情况下可省略),所以需要斜线来转义
napoleonu
2012-04-09 18:05:39 +08:00
@gonbo BS的是伸手党吧,这个问题找个男人就可以解决吧。
lldong
2012-04-09 18:08:11 +08:00
@delphiqin 那麼一樓的答案豈不是誤導了!LOL
tomheng
2012-04-09 19:44:51 +08:00
@gonbo 的话看了之后确实小伤心了一会,不过从另一个方面看也有一定的道理。我承认我在这方面(bash)很小白,还是好好努力吧!

没有回复也是不想引起不必要的争论,没想到最后大家这么热情的回复了,还有@delphiqin的答案应该是我当初想要的!
9hills
2012-04-09 20:40:55 +08:00
个人更习惯用xargs,比较方便,-exec实在是有点反人类。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/31745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX