So zeigen Sie versteckte Dateien mit dem Linux-Befehl `find` an


19

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?


1
Sie wissen, dass das "re" in "grep" für "regulären Ausdruck" steht, oder? Ich habe keine Ahnung, wie eine dieser Befehlszeilen funktionieren soll ...
Ignacio Vazquez-Abrams

Antworten:




0

Das Problem ist grep, nicht der Fund (versuchen Sie nur find . -type fzu 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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.