mac find -name *.png 不起作用

mac find -name *.png 不起作用

我正在尝试递归搜索以 .png 结尾的文件名。我的 find 命令对 *.js 有效,但对 *.png 无效。

~ >find dev -name *.png
~ >find dev -name bluerightarrow.png
dev/sandbox/ScheduleEditorTS/ScheduleEditorTS/img/bluerightarrow.png
~ >find dev -name *.js
dev/backup/ScheduleEditorTS/packages/jQuery.2.1.3/Content/Scripts/jquery-2.1.3-vsdoc.js
dev/backup/ScheduleEditorTS/packages/jQuery.2.1.3/Content/Scripts/jquery-2.1.3.js
... etc 

答案1

.png您的当前目录中可能有一个文件,并且该文件*已被您的 shell 扩展。

以下是实际解释。创建一个名为 的目录test,然后在其中创建另一个名为 的目录sub,最后myfile.txt在 中创建一个名为 的文件sub。然后cd进入test。以下是执行此操作的命令:

~ >mkdir -p test/sub
~ >touch test/sub/myfile.txt
~ >cd test

您可以运行find并会得到预期的结果:

~/test >find sub -name *.txt
sub/myfile.txt

cause.txt现在创建一个名为的文件test并再次运行find

~/test >touch cause.txt
~/test >find sub -name *.txt

这次什么也没找到,因为 shell 扩展了*并且您的find命令变成:

~/test >find sub -name cause.txt

中没有cause.txt文件sub,因此没有结果。

为了避免此问题,您必须使用反斜杠来转义星号:

~/test >find sub -name \*.txt
sub/myfile.txt

相关内容