此命令有何作用?find 命令及其选项

此命令有何作用?find 命令及其选项

但问题是这个命令是做什么的?我知道 find 命令,但不知道选项,比如引号中的表达式以及 -exec 和...

find /var -name "[0-9]*test[A-Z]" -exec  {} /root/{}';'

答案1

find /var指示find从目录开始搜索/var

-name "[0-9]*test[A-Z]"find是指示仅返回与模式匹配的文件/文件夹的搜索模式"[0-9]*test[A-Z]"。如果您不引用搜索字符串,您的 shell 将扩展该搜索模式并尝试执行结果。通过引用搜索模式,您可以将其作为参数传递给find /var -name

原始问题的部分-exec...有语法错误,应该是(请注意dessert 和 daisy 所评论的-exec {} /root/{} ';'前面的空格)。 它指示执行以下参数,其中被 的搜索结果替换。您通常也应该引用它们以防止 shell 扩展。';'
find{}find

最后,定义了执行命令时';'该部分应如何处理搜索结果。指示 find对每个单个查找结果运行 的命令。当使用 时,命令将运行并展开所有查找结果。这也必须用引号引起来或转义,以防止 shell 将其展开并生成 的参数。-exec';'-exec'+'-execfind...-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 ./1ltestA

相关内容