Linux find 命令 -exec 使用详解:解析 '*.log' 文件名
该代码不能运行的原因是在 -exec 后面的命令语句格式不正确。
在执行 -exec 命令时,'{}' 代表匹配到的文件名,但是在该代码中,'echo {} +' 这部分命令语句使用了单引号括起来,导致 '{' 无法被正确解析。
正确的命令语句应该是不带引号的,可以改为以下形式:
find . -name '*.log' -exec echo {} +
这样就可以正确地将匹配到的文件名传递给 echo 命令进行输出。
解释:
find . -name '*.log':查找当前目录下所有名为 '*.log' 的文件。-exec:执行指定命令。echo {} +:将匹配到的文件名传递给echo命令进行输出,其中{}代表匹配到的文件名,+表示将多个匹配到的文件名一次性传递给echo命令。
注意:
-exec选项后的命令语句需要用空格分隔。{}代表匹配到的文件名,需要用空格与-exec选项后的命令语句分隔。+表示将多个匹配到的文件名一次性传递给echo命令,可以提高执行效率。
总结:
使用 find 命令的 -exec 选项时,需要格外注意命令语句格式,避免使用单引号将 {} 括起来,否则会导致文件名无法被正确解析。
原文地址: https://www.cveoy.top/t/topic/b50y 著作权归作者所有。请勿转载和采集!