In Linux bash
you may face an error while using wildcard * to search files. For e.g.
trying to search all jar files with following command:
find . -name *.jar
will give following error:
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
Reason is that * is interpreted by shell itself before
arguments are passed to find command. * will resolve to all folders and
files within current folder, hence does not make much sense with .jar
extension at the end. For this reason we need to escape * somehow so
that it goes to find command as it is, without expanded by shell. There
are 2 ways that I know;
find . -name \*.jar
second is
find . -name '*.jar'
find: paths must precede expression
最新推荐文章于 2021-05-31 10:30:24 发布
本文介绍了在Linux环境中使用find命令搜索文件时遇到的一个常见错误:find: paths must precede expression。此错误通常发生在使用通配符(*)搜索特定类型的文件时。文章详细解释了错误产生的原因,并提供了两种有效的方法来避免shell提前解析通配符,确保find命令能够正确地搜索到目标文件。
<
1054

被折叠的 条评论
为什么被折叠?



