免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1664 | 回复: 7
打印 上一主题 下一主题

一个find命令的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-21 15:50 |只看该作者 |倒序浏览
有一个find命令的疑问

由于需要统计某些文件夹的文件个数,用到了find命令。
后来发现一条find命令由于自己敲错了,输出结果不对,比如:
我要查看的文件夹是/test

test>ls
1 2 3 4 5 6 7 m1



find . -name "*"
.
./1
./2
./3
./4
./5
./6
./7
./m1



find . -print
.
./1
./2
./3
./4
./5
./6
./7
./m1



find . *
.
./1
./2
./3
./4
./5
./6
./7
./m1
1
2
3
4
5
6
7
m1





为什么"find . *"输出是这样的,为什么输出了两边文件名,一个有路径,一个没有路径,请大家帮忙看看啊

论坛徽章:
0
2 [报告]
发表于 2009-03-21 16:23 |只看该作者
呵呵,多手加了*号,被shell翻译了

论坛徽章:
0
3 [报告]
发表于 2009-03-21 16:28 |只看该作者
原帖由 haimming 于 2009-3-21 16:23 发表
呵呵,多手加了*号,被shell翻译了

test>find .
.
./1
./2
./3
./4
./5
./6
./7
./m1


刚试了一下,"find ." 也可以,这个应该是=="find . -print"了,那"find . *"shell是怎么理解和执行的呢?

论坛徽章:
0
4 [报告]
发表于 2009-03-21 16:32 |只看该作者
*号被shell扩展成了目录下的文件名
所以,find . *被理解成了
find . 1 2 3 4......

论坛徽章:
0
5 [报告]
发表于 2009-03-21 17:48 |只看该作者
原帖由 haimming 于 2009-3-21 16:32 发表
*号被shell扩展成了目录下的文件名
所以,find . *被理解成了
find . 1 2 3 4......

又做了几个实验:

test>find . .
.
./2
./1
./4
./5
./3
./7
./6
./m1
.
./2
./1
./4
./5
./3
./7
./6
./m1
test>find . . .
.
./2
./1
./4
./5
./3
./7
./6
./m1
.
./2
./1
./4
./5
./3
./7
./6
./m1
.
./2
./1
./4
./5
./3
./7
./6
./m1
test>find *
1
2
3
4
5
6
7
m1
test>find * *
1
2
3
4
5
6
7
m1
1
2
3
4
5
6
7
m1
test>find * * *
1
2
3
4
5
6
7
m1
1
2
3
4
5
6
7
m1
1
2
3
4
5
6
7
m1




我之前的做法"find . *"是想"."是用来表示当前目录,但是看这几个例子的话,这个"."不是目录的意思了。

论坛徽章:
0
6 [报告]
发表于 2009-03-21 18:13 |只看该作者

回复 #5 birdstudyfly 的帖子

不是目录是什么?

论坛徽章:
0
7 [报告]
发表于 2009-03-21 20:57 |只看该作者

回复 #5 birdstudyfly 的帖子

这几个例子正说明.是目录。。。

论坛徽章:
0
8 [报告]
发表于 2009-03-23 14:00 |只看该作者
原帖由 haimming 于 2009-3-21 18:13 发表
不是目录是什么?

又看了一边,是目录,明白了,谢谢~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP