- 如何将2命令结果按格式写入同一文件
- 监控Sun OS 里面是否有某个程序停止运行的脚本 -- 不知道哪里写错了
- CentOs 能免费的用于商业目的吗
- sed 批量处理字符串
- awk如何把一个文件不同行的字段合并到一行 两个文件两组数据合并到一行
- 写了一个sqlite3创建数据库表的脚本,怎么加注释?
- awk 如何处理两个文件,实现类似数据库表连接的操作, 进行多个(大于2)字段的比较
- 怎么让VIM支持自动提示目录
- 嘿嘿 awk: Out of Memory.
- 求助:用shell比较第一列相同的两个文件?
- 如何获取文件的修改日期?
- 求助 grep: write error : invalid argument错误是什么错误?该怎么改
- 怎么把一个值加一啊????
- 如何用awk提取每行中的日期时间?
- 如何用rm删除目录下的所有可执行文件?
- 求方法:关于find
- 卸载如下的包,awk怎么做到
- sed -n 问题求助
- [^xyz] 的疑问
- 為什麽我的這個用AWK處理有問題
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
本篇文章发布于:百家学院 (http://www.9php.com),本文详细出处请访问以上网站.
·上一篇:已经没有了 · 下一篇:如何获取select的所有值?


