find /data -name avc*
很正常的执行了啊。不需要
find /data -name "avc*"
命令后的字符串就会被当作各个参数,所以你这两个写法没有区别。
双引号括起来的字符会被当作一个字符串,如果字符串中有空格,那也会被当作一个带空格的字符串,而不会被看作是由空格分开的两个字符串。
还有,shell会对命令中的字符串做一些处理,如路径展开、花括号展开、波浪线展开...,加上双引号后就只有算术展开、变量展开和命令展开有效了。
比如对于路径展开:
# 会列出目录下所有以abc开头的文件 ls abc* # 而这样就只会列出叫abc*的文件,也就是shell不会再将*通配符展开了 ls "abc*"