在 linux 下如何在当前目录以及其子目录里面查找全部的 php 文件?
1 2 | $ find . -name *.php |
这样?
上面的命令看上去似乎没问题,但实际返回的结果只有当前目录下的 php 文件。
只要对上面的命令稍加修改,给 *.php
加上引号,上面的命令就工作正常了,果然是打开方式不对啊
原因?因为 shell 已经把 *.php
“展开(expand)”成了当前目录下的所有 php 文件
如何理解展开?
想想另外一个常用的命令:删除当前目录下面的所有 php 文件:
1 2 | $ rm *.php |
是不是茅塞顿开?
更有意思的是,如果你用的 zsh 这种逆天的 shell,在输入了 *.php
之后按一下 tab
,立马可将展开后的结果呈现在眼前,更逆天的是 zsh 还支持
1 2 | $ rm **/*.php |
这种方式可将当前目录及其子目录下的所有 php 文件全部展开!!!下半辈子就靠 zsh 活着了!!
记一次 find 命令的错误用法 by Chris Yue is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

文章不错,我要帮站长分担建站费!
天使投赏人