问题如下:
ryt@ubuntu:~/Music$ find . -name *mp3
find: 路径必须在表达式之前: ¹â»ÔËêÔÂ.mp3
用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
将上述命令的*mp3用单引号括起来,也就是find . -name '*mp3'就可以正常执行了
但是find /home/ryt/Music -name *mp3,其中*mp3没有用单引号括起来,仍然可以正常执行!
这是怎么回事呢?
关于find命令的一些问题
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 95
- 注册时间: 2014-10-08 20:50
- 系统: ubuntu 14.04
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 关于find命令的一些问题
shell的通配符展开特性,跟find没关系
http://blog.csdn.net/joeblackzqq/articl ... ls/7031062
http://blog.csdn.net/joeblackzqq/articl ... ls/7031062
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- cifer
- 帖子: 140
- 注册时间: 2011-10-24 23:37
- 系统: Debian Wheezy
- 联系:
关于find命令的一些问题
可是楼主说的第二种情况应该也会扩展啊eexpress 写了:楼上说的不清楚。
就是shell会扩展*mp3 成 xxx.mp3 yyy.mp3,再交给find执行。这样你的find语法就错误了。
find /home/ryt/Music -name *mp3
从我的 iPhone 发送,使用 Tapatalk
-
- 帖子: 893
- 注册时间: 2011-02-14 17:46
Re: 关于find命令的一些问题
会不会那个文件夹里面的内容变动了
如果shell能在当前目录下找到两个或者更多*mp3文件就会语法错误
如果shell能在当前目录下找到两个或者更多*mp3文件就会语法错误
-
- 帖子: 95
- 注册时间: 2014-10-08 20:50
- 系统: ubuntu 14.04
Re: 关于find命令的一些问题
可能是find这个程序存在bug吧
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 关于find命令的一些问题
显然是执行此命令的目录下没有任何文件名符合*.mp3的文件,这种情况下shell是不会进行扩展的cifer 写了:可是楼主说的第二种情况应该也会扩展啊eexpress 写了:楼上说的不清楚。
就是shell会扩展*mp3 成 xxx.mp3 yyy.mp3,再交给find执行。这样你的find语法就错误了。
find /home/ryt/Music -name *mp3
-
- 帖子: 893
- 注册时间: 2011-02-14 17:46
Re: 关于find命令的一些问题
这种程度的bug不会没人发现,目录下面有0个或者1个就不会报错,有2个或者更多就是语法错误ryt 写了:可能是find这个程序存在bug吧
-
- 帖子: 2148
- 注册时间: 2012-12-16 15:43
- 系统: debian
Re: 关于find命令的一些问题
肯定不是BUG,是展开问题,如果把.改成./会怎样?ryt 写了:可能是find这个程序存在bug吧