Ich habe eine Reihe von WordPress-Sites, die in einer Shared-Hosting-Umgebung gehostet werden. Wie bei jeder WordPress-Site gibt es ein „Uploads“-Verzeichnis. Ich möchte regelmäßig nach potenziell schädlichen Dateien suchen, die sich in diesen Ordnern befinden, aber ich möchte dies natürlich nicht einzeln tun.
Die Frage ist also, wie ich alle „Uploads“-Verzeichnisse nach einer Datei mit der Erweiterung „.php“ durchsuchen kann.
Zum Beispiel:
find . -type d -iname "uploads"
bringt mir alle "Uploads"-Ordner in meinem Stammverzeichnis, aber ich möchte auch innerhalb dieser Verzeichnisse suchen
Antwort1
Es ist möglich, die Ausgabe Ihres Befehls an einen anderen weiterzuleiten, Sie können aber auch nach beiden Kriterien gleichzeitig suchen, indem Siegrep
UndReguläre Ausdrücke:
find . -type f | grep -i "/uploads/.*\.php$"
Wie es funktioniert:
find . -type f
ListenalleDateien im aktuellen Verzeichnis und seinen Unterverzeichnissen.grep -i "/uploads/.*\.php$"
filtert die Ausgabe:-i
macht die Suche unabhängig von Groß- und Kleinschreibung/uploads/.*\.php$
ist der reguläre Ausdruck, dem eine Zeile entsprechen muss, um angezeigt zu werden/uploads/
php
sind genau das.*
ist eine beliebige Anzahl von Vorkommen beliebiger Zeichentypen\.
ist eine wörtliche.
$
signalisiert das Ende der Leitung
Dasselbe Ergebnis erreichen Sie mit
find . -type f -iregex ".*/uploads/.*\.php"
aber die Syntax ist mühsam, wenn Sie reguläre Ausdrücke aus grep
Perl, PHP, JavaScript usw. kennen.