Как просмотреть скрытые файлы с помощью команды Linux `find`

19

На сервере Linux мне нужно найти все файлы с определенным расширением в текущем каталоге и всех подкаталогах.

Ранее я всегда использовал следующую команду:

find . -type f | grep -i *.php

Однако он не находит скрытые файлы, например .myhiddenphpfile.php . Следующее находит скрытые файлы php, но не скрытые:

find . -type f | grep -i \.*.php

Как найти скрытые и не скрытые файлы php в одной команде?

Том
источник
1
Вы знаете, что «re» в «grep» означает «регулярное выражение», верно? Я понятия не имею, как должна работать любая из этих командных строк ...
Игнасио Васкес-Абрамс

Ответы:

25

...

find . -type f -name '*.php'
Игнасио Васкес-Абрамс
источник
0

Проблема в grep, а не в поиске (попробуйте просто find . -type fпосмотреть, что я имею в виду).

Если вы не заключите в кавычки, *то оболочка расширит его - до того, как grep увидит аргументы командной строки; поскольку оболочка не находит скрытые файлы по умолчанию, у вас будут проблемы.

Причина, по которой он находит только скрытый файл, заключается в том, что оболочка уже развернула файл, *и поэтому grep сопоставляет только этот файл.

Rasputnik
источник