Linux find 命令加引号的区别
网上查了一下,原因主要是 find 命令若是加引号则会调用 find 去解析,其采用了正则表达式去匹配。而若是未加引号,则会直接调用 shell 去解析,这是二者的本质区别。
如果执行以下命令:
$ find . -name abc
$ find . -name abc*
$ find . -name “abc*”
$ find . -name “abc*” -print
详细说明如下:
find 后面的匹配表达式必须要加引号,原因是 find命令 本身是可以解析元字符的 。在执行find的时候如过后面不加引号,那么这个*就被shell解析了,shell去匹配目录中的以 abc开头的文件,匹配到后直接将结果传给find。find接收到的参数就如: find -name abcd abc1 abc2 abc3。如果 find后面的匹配表达式加了引号,shell就不会去解析这个引号,那么这时候就由find去解析。