Auf einem Linux-Server muss ich alle Dateien mit einer bestimmten Dateierweiterung im aktuellen Verzeichnis und allen Unterverzeichnissen finden.
Bisher habe ich immer den folgenden Befehl verwendet:
find . -type f | grep -i *.php
Allerdings , findet es nicht versteckte Dateien, zum Beispiel .myhiddenphpfile.php . Das Folgende findet die versteckten PHP-Dateien, aber nicht die nicht versteckten:
find . -type f | grep -i \.*.php
Wie finde ich die versteckten und nicht versteckten PHP-Dateien im selben Befehl?
Antworten:
...
quelle
Es ist besser, iname zu verwenden (Groß- und Kleinschreibung wird nicht berücksichtigt).
Ich benutze diesen find Befehl, um versteckte Dateien zu durchsuchen:
Auszug aus: http://www.sysadmit.com/2016/03/linux-ver-archivos-ocultos.html
quelle
Das Problem ist grep, nicht der Fund (versuchen Sie nur
find . -type f
zu sehen, was ich meine).Wenn Sie das nicht zitieren,
*
wird es von der Shell erweitert - bevor grep überhaupt die Befehlszeilenargumente sieht. Da die Shell standardmäßig keine versteckten Dateien findet, treten Probleme auf.Der Grund dafür, dass nur die versteckte Datei gefunden wird, ist, dass die Shell die bereits erweitert hat
*
und grep daher nur mit dieser einen Datei übereinstimmt.quelle