- 谁能给个Postgresql+tomcat6+jdbc连接池的例子?
- [图文] 谁能帮我解释一下这个shell程序的作用?
- [图文] 谁能帮我解释一个这个Shell小程序?
- [图文] 谁能帮我分析一下这个程序的输出结果?
- [图文] 谁能介绍一下Zimbu?宣传挺神的!
- [图文] 关于sizeof,下面程序谁能解释一下为什么?
- [图文] 谁能解答一个关于if条件语句?
- awk / sed / shell 谁能解决就用谁,
- 谁能给推荐个 C++的源码
- [图文] 谁能解释一下这个sed命令,太复杂了。。。
- 谁能写出最高效的字符串反转函数?
- Linux下tuxedo程序内存泄漏,试问有谁能解决?
- 谁能讲讲gensub的\n用法啊
- [图文] 谁能帮我用SED匹配下这段话
- 谁能够给我推荐一本SDL的书籍?
- [图文] 看到一个hash算法,谁能帮我讲讲。
- 一个关于awk之match函数的问题 求助 急死啦!谁能帮..
- [图文] 谁能不能贴个关于“C代码优化”的资料
- [图文] 也许是画蛇添足,但谁能告诉我如何继承map吗?..
- 【求助】链表操作的内存问题,谁能帮我解释下
find . -name "*.*" -exec rm -f {} \;这个命令不知道shell是怎么解释的?
我知道
\;被解释成为;
{}就不知道是怎么解释
另find命令是怎么解释-exec后面接的参数的,是不是会自动把{}替换成找到的文件名?
;号的作用又是什么呢?
2009-1-13 23:29liaosnet回复 #1 皇家救星 的帖子
看一下下面的解释..
-exec command ;
Execute command; true if 0 status is returned. All following arguments to find are taken to be arguments to the command until an argument consisting of ';' is encountered. The string '{}' is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find. Both of these constructions might need to be escaped (with a '\') or quoted to protect them from expansion by the shell. The command is executed in the starting directory.
2009-1-13 23:39xiaobaibbb这样估计你就把当前目录下的文件全删除了?
不懂怎么解释啊,反正好像是这样的,我去试试。
或者等哪个老大来讲解 ~
2009-1-13 23:41xiaobaibbb
原帖由 xiaobaibbb 于 2009-1-13 23:39 发表 ![]() 这样估计你就把当前目录下的文件全删除了? 不懂怎么解释啊,反正好像是这样的,我去试试。 或者等哪个老大来讲解 ~ [/quote] 是的,是把当前目录下的东西都删除了~ root@debian:~# mkdir ttt root@debian:~# cd ttt/ root@debian:~/ttt# touch a.rar root@debian:~/ttt# touch a.b root@debian:~/ttt# touch 1.2 root@debian:~/ttt# find . -name "*.*" -exec rm -f { } \; root@debian:~/ttt# ls root@debian:~/ttt# 2009-1-13 23:44皇家救星嗯,效果确实是把目录下的所有包含.的文件删除 不过这好像不是我提问的重点: ) 2009-1-13 23:47liaosnet回复 #3 xiaobaibbb 的帖子 find . -name "*.*" -exec rm -f {} \; 的意思是 在当前目录下查找名为 "多个字符.多个字符" 的文件,然后删除它们..并不是所有文件... 2009-1-13 23:50haimming留给“我是DBA”吧,呵呵 2009-1-14 00:02xiaobaibbb..貌似我的DBA很出名哦~他很热心的! 不过你这样就把liaosnet的一切给否定了! find . -name "*.*" -exec rm -f {} \; 查找find 当前目录 . 名字为-name 字符.字符 *.*的文件 传递命令 -exec 删除并不提示 -f 查找出来的文件名 { } 这个是转义吗? "\;" ;估计是结束的意思吧? 2009-1-14 00:12haimming回复 #8 xiaobaibbb 的帖子 断无此意! 只是猜测 liaosnet DX可能简单了点,不能满足LZ的求知欲,同时和DBA开个玩笑罢了 对了,不该把这里变成灌水区,我今天有些不像话,面墙去了 2009-1-14 00:13liaosnet回复 #8 xiaobaibbb 的帖子 语法上说 ;用来结束-exec 的命令的,由于;在shell中还有其他含义,故需要使用\将其含义去掉... 2009-1-14 00:15liaosnet回复 #9 haimming 的帖子 额..没事的..本来我就不经常来这个区..呵呵...来着看看..有略知道的就回答下下...错了也别怪我就行了.:em03: :em03: 2009-1-14 00:17xiaobaibbb
{} 就是保存 find . -name "*.*" 查找到的结果。 2009-1-14 10:29我是DBA[quote]原帖由 liaosnet 于 2009-1-14 00:13 发表 ![]() 语法上说 ;用来结束-exec 的命令的,由于;在shell中还有其他含义,故需要使用\将其含义去掉... |
廖大师所言极是。。。
我是来跑过的。
2009-1-14 18:26皇家救星谢谢各位了
原来{}并不会被shell特殊解释
我以为会呢:mrgreen:
2009-1-14 18:42apachyfind自己有delete功能:
find . -name "*.*" -delete
该篇文章来源:百家学院 (www.9php.com),复制请注明.
[编辑:百家电脑学院] [返回学院首页] [返回上一页] []
·上一篇:问个makefile中脚本执行的问题 · 下一篇:linux shell 书


