【问题标题】:Why is not my `find` command working? [closed]为什么我的 `find` 命令不起作用? [关闭]
【发布时间】:2016-09-29 18:01:10
【问题描述】:
这是什么,为什么没有列出名称中包含“idea”的文件?
/Applications/WebStorm.app/Contents$ find . "*idea*" -exec echo aaa {} \; | head
aaa .
aaa ./_CodeSignature
aaa ./_CodeSignature/CodeResources
aaa ./bin
aaa ./bin/fsnotifier
aaa ./bin/idea.properties
aaa ./bin/inspect.sh
aaa ./bin/libbreakgen.dylib
aaa ./bin/libbreakgen.jnilib
aaa ./bin/libbreakgen64.dylib
find: *idea*: No such file or directory
【问题讨论】:
标签:
bash
macos
shell
unix
【解决方案1】:
你错过了-name 测试:
find . -name "*idea*" -exec echo aaa {} \;
没有-name:
find . "*idea*" -exec echo aaa {} \;
是find-ing 所有文件/目录,在当前目录(.),以及当前目录中*idea* 匹配的文件/目录,递归。据推测,当前目录中没有名称中带有idea 的文件/目录,因此出现了关于*idea* 的错误。
附带说明,如果您只查找文件,请添加-type f:
find . -name "*idea*" -type f -exec echo aaa {} \;
【解决方案2】:
我真傻,我忘记了-name 参数。此命令列出了 . 文件夹的所有内容,然后是(不存在的)"*idea*" 文件夹的所有上下文。