查找:未知谓词

yor*_*rch 7 bash find

这可能不是一个 Ubuntu 问题,而是一个 Linux 问题,仍然希望那里的一些 Linux 用户可以帮助我理解这一点。

我正在尝试使用find命令在目录树中查找一些文件。

不幸的是某些文件被命名为开始于一个横杠,像-000.jpg-002.jpg00n.jpg等等。但是,每次命令定位以这种方式命名的文件之一时,它只会中断进程并以以下方式抱怨:

find: unknown predicate `-001.jpg'
Run Code Online (Sandbox Code Playgroud)

或任何以破折号开头的文件的名称。

在我看来,find命令以某种方式将生成的文件名解释为参数,但我还没有找到规避这种行为的方法。

提前感谢您分享您的智慧。

gei*_*rha 8

确保引用您提供给的模式find,否则如果当前目录中有匹配的文件,shell 可能会扩展它们。

find /some/dir -name *.jpg   # bad
find /some/dir -name "*.jpg" # good
Run Code Online (Sandbox Code Playgroud)

请参阅http://mywiki.wooledge.org/UsingFind

  • 可能是我使用了 `find /some/dir -name="*.jpg"` 和 `=` 而不是空格。HTH 一些 googler。 (2认同)