我有一个包含许多子目录的目录,我想在此目录中查找文件,因此我使用以下命令:
find ./ -name test.php
但此命令仅在顶层目录中搜索,
我怎样才能在所有子目录中进行搜索?
答案1
您使用的命令将在目录(包括所有子目录)中搜索名为的文件test.php
。
它将要搜索子目录,假设您拥有所需的权限。
但是,您可能想要更改-name
为-iname
,以便无论大小写都可以找到文件。(例如,还可以找到Test.php
,test.PHP
或teSt.phP
)
您可能还想添加-ls
或-print
。找到后打印文件位置是许多“查找”的默认设置,但明确执行此操作是个好习惯。
例子:
mkdir footest1
cd footest1
touch test.php
touch TesT.pHp
cd ..
find ./ -name test.php -print
./footest1/test.php
find ./ -iname test.php -print
./footest1/test.php
./footest1/TesT.pHp
如果您要将 find 的输出提供给另一个程序,那么请考虑-print0
。
答案2
这应该可行。您的用户是否有权进入并读取子目录和您想要的文件?
答案3
你也可以尝试
ls -lR | grep test.php