查找具有给定名称的文件或在具有给定名称的目录中输入

查找具有给定名称的文件或在具有给定名称的目录中输入

我想要查找名为 的目录中的所有 PHP 脚本web。具体来说,我对index.php这些目录中的任何文件都感兴趣。

我知道我可以用来sudo find / -type d -name "web"列出所有目录,然后我可以sudo find <directory path> -type f -name "*.php"对每个输出路径使用它来查看它是否包含 PHP 脚本。

但是有没有办法用一行和两个嵌套的 find 命令来做到这一点:一个 find 命令用于获取web目录的路径,第二个 find 命令依次使用每个目录作为根目录来查找名称与模式匹配的文件*.php

答案1

find如果您使用该-path选项而不是,则无需调用两次-name

find / -type f -path "*/web/*.php"

index.php具体来说,对于位于名为的目录下的每个文件web

find / -type f -path "*/web/*index.php"

答案2

此命令应实现以下目标:

find / -type d -name "web" -exec find {}/  -type f -name "*.php" \;

在这棵树上测试:

Documents/askubuntu/web
├── index.php
├── kate
│   ├── jate
│   │   └── jate.php
│   └── kate.php
├── koko
│   └── read.php
└── web2
    └── index.php

结果:

./Documents/askubuntu/web/koko/read.php
./Documents/askubuntu/web/kate/kate.php
./Documents/askubuntu/web/kate/jate/jate.php
./Documents/askubuntu/web/index.php
./Documents/askubuntu/web/web2/index.php

相关内容