但有个问题这个命令是做什么的?我知道查找命令,但是关于选项no,比如在引号中的表达式,以及-exec和.
find /var -name "[0-9]*test[A-Z]" -exec {} /root/{}';'发布于 2018-05-31 10:14:54
find /var指示find在/var目录下开始搜索。
-name "[0-9]*test[A-Z]"是一种搜索模式,它指示find只返回与模式"[0-9]*test[A-Z]"匹配的文件/文件夹。如果不引用搜索字符串,则shell将展开该搜索模式,并尝试执行结果。通过引用搜索模式,将其作为参数传递给find /var -name。
原始问题的-exec...部分有一个语法错误,应该是-exec {} /root/{} ';' (注意';'之前的空格,如甜品和雏菊的注释)。它指示find执行以下参数,其中{}被find的搜索结果替换。您通常也应该引用这些,以防止shell扩展。
最后,';'定义了在执行命令时-exec部分应该如何处理搜索结果。';'指示find对每个查找结果运行-exec命令。相反,当使用'+'时,将运行-exec命令,并展开所有查找结果。还必须引用或转义,以防止shell扩展它并向find...-exec进行参数化。
下面是一个说明";"和"+"之间区别的小例子。
[user@localhost test]$ find . -name "[0-9]*test[A-Z]" -exec echo "{}" ";"
./12ltestA
./1ltestA
[user@localhost test]$ find . -name "[0-9]*test[A-Z]" -exec echo "{}" "+"
./12ltestA ./1ltestAhttps://askubuntu.com/questions/1042257
复制相似问题