LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 840|回复: 4

find . -name "*.txt" -print与find . -name *.txt -print

[复制链接]
发表于 2005-6-28 10:24:06 | 显示全部楼层 |阅读模式
前一个会授索子目录,后一个不会,哪位明白说一下原因!
发表于 2005-6-28 10:32:48 | 显示全部楼层
下次编辑一下题目就行了,不要发重了.我帮你把题目编辑一下.
回复 支持 反对

使用道具 举报

发表于 2005-6-28 23:45:17 | 显示全部楼层
“”  里边的字符,是直接传输给find 作为参数。不然就会被解析了。
回复 支持 反对

使用道具 举报

发表于 2005-6-28 23:46:07 | 显示全部楼层
Post by providence
find . -name "*.txt" -print与find . -name *.txt -print
前一个会授索子目录,后一个不会,哪位明白说一下原因!

传给find的模式应该用""括起来

我的系统centos4.1 ,bash-3.0-19.2

  1. [xxxx]$ find . -name *.html -print
  2. ./build/comps.html
  3. ./build/howto.html
  4. ./build/RedHat-CD-HOWTO_files/note.html
  5. ./build/RedHat-CD-HOWTO.html
  6. [xxxx]$ find . -name "*.html" -print
  7. ./build/comps.html
  8. ./build/howto.html
  9. ./build/RedHat-CD-HOWTO_files/note.html
  10. ./build/RedHat-CD-HOWTO.html

复制代码

如果进到build目录,则

  1. [xxxx]$ cd build
  2. [xxxx]$ find . -name "*.html" -print
  3. ./comps.html
  4. ./howto.html
  5. ./RedHat-CD-HOWTO_files/note.html
  6. ./RedHat-CD-HOWTO.html
  7. [xxxx]$ find . -name *.html -print
  8. find: paths must precede expression
  9. Usage: find [path...] [expression]
复制代码

find . -name ”*.html“,*.html被传给find,没有问题,
对于find . -name *.html
*.html的通配符首先被bash处理,如果当前目录没有.html文件,
那么(在我用的系统里),*.html被传给find,ok
如果当前目录有.html文件,*.html被bash 展开,再传给find
如果当前目录只有一个html文件,find可以找到这个html
如果有多个,则这种情况下find命令没有被正确调用,不执行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-29 10:05:45 | 显示全部楼层
详细,谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表