在 Linux 服务器上,我需要在当前目录和所有子目录中查找具有特定文件扩展名的所有文件。
以前我一直使用以下命令:
find . -type f | grep -i *.php
但是,它找不到隐藏文件,例如.myhiddenphpfile.php
。以下代码可以找到隐藏php
文件,但找不到非隐藏文件:
find . -type f | grep -i \.*.php
如何使用php
同一个命令找到隐藏文件和非隐藏文件?
答案1
...
find . -type f -name '*.php'
答案2
最好使用 iname (不区分大小写)。
我使用这个 find 命令来搜索隐藏文件:
find /path -type f -iname ".*" -ls
摘自:http://www.sysadmit.com/2016/03/linux-ver-archivos-ocultos.html
答案3
问题在于 grep,而不是 find(尝试一下find . -type f
就能明白我的意思)。
如果您不引用,*
那么 shell 将会扩展它 - 在 grep 看到它的命令行参数之前;因为 shell 默认不会找到隐藏文件,所以您会遇到问题。
原因是仅有的找到隐藏文件是因为 shell 已经扩展了,*
所以 grep 只匹配那个文件。