Jak wyświetlić ukryte pliki za pomocą polecenia Linux `find`

19

Na serwerze Linux muszę znaleźć wszystkie pliki z pewnym rozszerzeniem w bieżącym katalogu i wszystkich podkatalogach.

Wcześniej zawsze używałem następującego polecenia:

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

Jednak nie znajduje ukrytych plików, na przykład .myhiddenphpfile.php . Poniżej znajduje się ukryte pliki php, ale nie te nie ukryte:

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

Jak mogę znaleźć zarówno ukryte, jak i nie ukryte pliki php w tym samym poleceniu?

Tomek
źródło
1
Wiesz, że „re” w „grep” oznacza „wyrażenie regularne”, prawda? Nie mam pojęcia, jak powinna działać jedna z tych linii poleceń ...
Ignacio Vazquez-Abrams

Odpowiedzi:

25

...

find . -type f -name '*.php'
Ignacio Vazquez-Abrams
źródło
0

Problemem jest grep, a nie znalezisko (spróbuj tylko find . -type fzobaczyć, co mam na myśli).

Jeśli nie zacytujesz, *powłoka ją rozwinie - zanim grep zobaczy nawet argumenty wiersza poleceń; ponieważ powłoka domyślnie nie znajduje ukrytych plików, będziesz mieć problemy.

Powodem, dla którego odnajduje tylko ukryty plik, jest to, że powłoka już go rozszerzyła, *dlatego grep dopasowuje tylko ten jeden plik.

Rasputnik
źródło