find命令中不用双引号也不报错啊

来源:1-2 shell编程之正则表达式与通配符

laoqiaII

2015-08-13 17:25

find /data -name avc*


很正常的执行了啊。不需要

find /data -name "avc*"

写回答 关注

1回答

  • onemoo
    2015-08-14 02:40:42
    已采纳

    命令后的字符串就会被当作各个参数,所以你这两个写法没有区别。

    双引号括起来的字符会被当作一个字符串,如果字符串中有空格,那也会被当作一个带空格的字符串,而不会被看作是由空格分开的两个字符串。

    还有,shell会对命令中的字符串做一些处理,如路径展开花括号展开波浪线展开...,加上双引号后就只有算术展开变量展开命令展开有效了。

    比如对于路径展开:

    # 会列出目录下所有以abc开头的文件
    ls abc*
    
    # 而这样就只会列出叫abc*的文件,也就是shell不会再将*通配符展开了
    ls "abc*"


    laoqia...

    谢谢您的详细答复。

    2015-08-20 11:44:31

    共 1 条回复 >

shell编程之正则表达式

为你带来shell编程中的正则表达式,能够熟练运用正则表达式

39682 学习 · 73 问题

查看课程

相似问题