作者回复: 您好,我先解释一下\; 的含义,
1 首先不带转义的; 分号,表示分隔两条命令,如: find txt ; rm a.txt ,执行顺序就是先查找txt,查找命令结束之后,无论是否查找到文件,都执行删除 a.txt 操作,它的作用是告诉shell脚本find命令结束了,可以执行下一条命令了。
这里使用了\; 转义了分号,是告诉shell, 它是find命令 用于 结束 -exec 这个选项的
2 { } 如你所说,代表的就是由find找到的文件路径,假设find命令找到的是 a.txt b.txt c.txt ,这条命令会 在 -exec 选项后面组成 rm -v a.txt b.txt c.txt ; 命令,并运行。
作者回复: -regex 要匹配的是路径名称的“完整”正则表达式, 路径这里用find . 可知是 ./1.txt ;
所以匹配的应该是find . -regex '\./[1-9]\.txt'