如何编写正确的find命令并创建look文件查找指定规则文件
正确的find命令及look文件创建方法
修正后的find命令
find . -type f \( -name "a*" -o -name "*z" -o -name "z*a!" \)
原命令的问题说明
- 第三个匹配条件缺少
-name关键字,属于语法错误,find无法识别单独的"z*a!"作为匹配规则 find的逻辑运算符中,-a(逻辑与)优先级高于-o(逻辑或),原命令会被解析为:(-type f -name "a*") -o -name "*z" -o "z*a!",这会导致后两个条件不限制文件类型,可能匹配到目录、链接等非文件对象。用括号将所有文件名匹配条件括起,才能让-type f作用于所有三类文件。- 括号需要用反斜杠
\转义,防止被shell当作子shell语法解析。
创建可执行的look文件
执行以下命令即可生成名为look的可执行文件:
echo 'find . -type f \( -name "a*" -o -name "*z" -o -name "z*a!" \)' > look chmod +x look
之后直接运行./look就能执行目标查找操作。
内容的提问来源于stack exchange,提问作者Braudo
相关产品推荐
相关产品推荐

