作者回复: 您好,我先解释一下\; 的含义, 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 ; 命令,并运行。
作者回复: 正则匹配的是路径名称, -name匹配的是文件或者文件夹名称
作者回复: -regex 要匹配的是路径名称的“完整”正则表达式, 路径这里用find . 可知是 ./1.txt ; 所以匹配的应该是find . -regex '\./[1-9]\.txt'
作者回复: 是的
作者回复: ?表示单个字符,find默认使用的是通配符
作者回复: 1 正则使用 regex 2 正则匹配的是路径,而不是文件名 ,也就是/etc/passwd ,找 p开头,wd 结尾的文件 应该匹配 /etc/p.*wd$ 方式,但这不是最佳实践, 一般使用正则方式多为查找某一扩展名时才使用