На сервере Linux мне нужно найти все файлы с определенным расширением в текущем каталоге и во всех подкаталогах.
Раньше я всегда использовал следующую команду:
find . -type f | grep -i *.php
тем не мение, не находит скрытые файлы, например .myhiddenphpfile.php. Следующее находит скрытые файлы php, но не скрытые:
find . -type f | grep -i \.*.php
Как я могу найти скрытые и не скрытые файлы php в одной команде?
...
find . -type f -name '*.php'
Лучше использовать iname (без учета регистра).
Я использую эту команду поиска для поиска скрытых файлов:
find /path -type f -iname ".*" -ls
Извлечен из: http://www.sysadmit.com/2016/03/linux-ver-archivos-ocultos.html
Проблема в grep, а не в поиске (попробуйте просто find . -type f
чтобы понять, что я имею в виду).
Если вы не процитируете *
тогда оболочка расширит его - прежде чем grep увидит аргументы командной строки; поскольку оболочка по умолчанию не находит скрытые файлы, у вас возникнут проблемы.
Причина этого только обнаружение скрытого файла связано с тем, что оболочка уже расширила *
и поэтому grep соответствует только этому одному файлу.