У меня есть каталог с множеством подкаталогов, Я хочу найти файл в этой директории, поэтому я использую эту команду:
find ./ -name test.php
но эта команда ищет только в директории верхнего уровня,
как я могу искать во всех поддиректориях тоже?
Используемая вами команда будет искать в каталогах (включая все подкаталоги) файлы с именем test.php
.
Это будет поиск в подкаталогах, если у вас есть необходимые права.
Однако вы можете изменить -name
на -iname
, чтобы вы могли находить файлы независимо от регистра. (например, также найдите Test.php
, test.PHP
или teSt.phP
)
Вы также можете добавить -ls
или -принт
. Печать местоположения файла при обнаружении - это стандартная установка для многих «находок», но это хорошая привычка делать это явно.
Примеры:
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
Если вы собираетесь передать результат поиска в другую программу, рассмотрите вариант -print0
.
Это должно сработать. Есть ли у вашего пользователя права для входа в подкаталоги и чтения подкаталогов и нужного вам файла?