- Willkommen zuhause: Personenerkennung mit FHEM
- Linux Befehle: Übersicht der wichtigsten Shell-Kommandos
- Wichtige Linux-Ordner: Wo finde ich welche Dateien?
- Tipp: Schnell in allen Dateien auf der Webseite nach Text / Bildern suchen! (nr)
- Mac Terminal Befehle: Die wichtigsten Konsolen-Kommandos
- Philips hue Bridge in FHEM anmelden
- Willkommen zuhause: Personenerkennung mit FHEM (Presence + Bluetooth & WLAN)
Datei suchen: Dateien und Texte unter Linux finden
Hier die Lösung für das Problem: Wie finde ich eine bestimmte Datei unter Linux oder eine Textstelle, wenn ich nicht weiß, in welcher Datei ich suchen muss. Gerade Webmaster kennen das Problem: Wenn man ein größeres Web-Projekt bearbeitet, sucht man manchmal unnötig lange nach gewissen Textstellen, Bildern oder Dateinamen, die in einem Template oder Theme versteckt sind. Nur in welcher Datei man suchen muss, weiß man leider selten.
Hat man per SSH Zugriff zu dem Webserver, ist das Suchen leicht: Man kann den Server selber suchen lassen. Diese Beispiele durchsuchen das Dateisystem nach verschiedenen Suchmustern (zum Beispiel Dateiname, Alter der Datei oder Größe) oder suchen einen enthaltenen Textstring auf dem Server in dem aktuellen Ordner und allen Unterordnern: So kann man sich schnell die betreffenden Dateien auflisten lassen und diese später bearbeiten.
Download-Tipp:
Auch ohne Shell-Zugriff auf den Server kann man diese Befehle nutzen, indem man sie in eine PHP Datei kopiert. Ein fertiges Skript haben wir hier als Beispiel: In den Haupt-Ordner der Webseite kopiert, durchsucht das Skript mit dem grep Befehl nach allen Vorkommnissen des Suchtextes (sowohl groß- als auch kleingeschrieben). Keine Angst: Das Skript verschickt keine Daten und kann natürlich vorher problemlos angesehen und geprüft werden!
Datei nach Dateinamen, Größe oder Alter suchen
Die erste Suche sucht bestimmte Dateien anhand ihres Namens, ihrer Größe oder anhand des Alters. So lassen sich zum Beispiel sehr schnell neue Dateien finden, die erst in der letzten Woche erstellt wurden – oder Dateien, von denen man noch einen Teil des Namens kennt. Der Befehl “find” listet er rekursiv (also auch mit Unterordnern) die Dateien auf, die die gesuchte Textstelle oder Teile des Dateinamens enthalten:
find . -type f -name "logo.*"
Dies ist praktisch, wenn man sich noch an den Dateinamen oder Teile davon erinnern kann: Mit dem oben genannten Befehl sucht Linux im aktuellen Ordner (und allen Unterordnern) nach Dateien, deren Dateiname mit “logo.” beginnt. Verwendet man statt “-name” den Zusatz “-iname”, ignoriert der Befehl die Groß- und Kleinschreibung im Dateinamen und würde auch Dateien finden, deren Name mit “LOGO.” oder “Logo.” beginnt.
Eine weitere Möglichkeit ist die Suche nach neuen Dateien: So lassen sich mit “find” Dateien auflisten, die erst einen Tag oder eine Woche alt sind:
Dateien, die in den letzten 24 Stunden erstellt wurden:
find . -mtime 0
Dateien, die genau 5 Tage alt sind:
find . -mtime 5
Dateien, die älter als 5 Tage sind:
find . -mtime +5
Dateien, die neuer als 5 Tage sind:
find . -mtime -5
Der “find” Befehl kann aber auch nach der Größe einer Datei suchen, um zum Beispiel alle großen Dateien eines Verzeichnissen (oder in den Unter-Ordnern) zu zeigen. Hier kann man die Dateigröße mit “k” für Kilobyte, “M” für Megabyte und “G” für Gigabyte angeben – außerdem mit einem Plus oder Minus davor:
find . -size +100M
Dieser Befehl sucht jetzt alle Dateien im aktuellen Ordner und allen Unterordnern, die größer als 140 Megabyte sind. Alternativ kann man aber auch nach Dateien suchen, die kleiner sind:
find . -size -10k
So werden nur Dateien aufgelistet, die kleiner sind als 10 Kilobyte. Die Befehle lassen sich mit “-name” und “-mtime” aber auch nach belieben kombinieren: So kann man mit diesem Befehl zum Beispiel nur nach Dateien unter 15 Kilobyte suchen, die die Dateiendung “.php” haben und nicht älter sind als fünf Tage:
find . -size -15k -name "*.php" -mtime -5
Dateien nach ihrem Inhalt finden
Find kann aber nicht nur nach Dateinamen suchen, sondern auch im Inhalt der Datei suchen: Das ist praktisch für Text- oder HTML-Dateien, bei denen der Suchtext direkt gefunden werden kann. “Find” ist hier allerdings deutlich langsamer als die anschließend folgende Variante mit “grep”:
find . -type f -exec fgrep -l 'Suchtext' {} \;
Dies sucht nach Dateien, die den Begriff “Suchtext” enthalten – allerdings als Text-Inhalt der Datei und nicht als Dateiname. Der Befehl lässt sich zusätzlich noch mit den vorher genannten Beispielen erweitern, um nur bestimmte Datei-Typen zu aufzulisten oder nur die neuesten Dateien zu zeigen, die den Begriff “Suchtext” enthalten:
find . -type f -name "*.php" -exec fgrep -l 'Suchtext' {} \;
Mit der zusäztlichen Suche nach “*.php” werden in den Suchergebnissen nur die Dateien mit der Endung “.php” angezeigt. Kommt der Suchbegriff noch in anderen Dateien vor, werden diese nicht angezeigt.
find . -type f -mtime 0 -exec fgrep -l 'Suchtext' {} \;
Die Kombination mit “mtime” sucht jetzt nur noch nach Dateien, die einerseits den Suchbegriff enthalten, andererseits aber auch vom Datum der Erstellung oder letzten Änderung passen: Das oben genannte Beispiel zeigt nur Dateien an, die in den letzten 24 Stunden verändert oder erstellt wurden und den Begriff “Suchtext” innerhalb der Datei enthalten.
Dateisuche mit grep
Der nächste Befehl arbeitet deutlich schneller und zeigt ebenfalls auch die Fundstellen un Unterordnern an:
grep -rnwl './' -e "Suchtext"
So sucht man nach der exakten Schreibweise, hier wird auch Groß- und Kleinschreibung beachtet. Ist das nicht wichtig, oder ist man nicht sicher, muss man noch den Parameter “i” hinzufügen: So sucht man sowohl nach Logo.gif als auch nach logo.gif.
grep -rnwli './' -e "Suchtext"
Lässt man in dem Befehl das “l” weg, erhält man auch die genaue Textstelle, dafür wird es aber etwas unübersichtlich: Zusammen zu der Datei und auch der Zeilennummer, in der sich der gesuchte Text in der Datei befindet, wird ein Ausschnitt aus der Datei angezeigt. Das ist zwar praktisch, um die Datei direkt zu prüfen, kann bei mehreren Fundstellen aber recht verwirrend werden:
grep -rnw './' -e "Suchtext"
Beispiel: Aufruf des Bildes “logo.png” auf dem Server suchen
Wenn man ein neues Logo auf einer Webseite einbauen möchte, kann man das alte Bild oft einfach überschreiben. Hat das neue Bild aber eine andere Größe, muss im HTML Code auf der Webseite auch der <img&rt; Tag angepasst werden, damit die neue Größe auch übernommen wird. Wenn man jetzt nicht mehr weiß, in welcher Datei das Logo definiert wurde, kann man es dann zum Beispiel mit diesem Code suchen:
grep -rnwl './' -e "logo.png"
Um die Datei “logo.png” selbst zu finden, hilft wiederum der “find” Befehl mit Angabe des Dateinamens:
find . -type f -name "logo.png"
- datenschutz (41x gelesen)
- windows-beschleunigen (40x gelesen)
- windows-defragmentieren-und-aufraeumen (35x gelesen)
- windows-geschwindigkeits-einstellungen (33x gelesen)
- pc-einsteigerkurs (29x gelesen)
Mehr Tipps zu Datei suchen: Dateien und Texte unte...
-
SCROT überschreibt keine Dateien sondern legt neue an: So ändern Sie das!
» english version Die Linux-Screenshot-Software Scrot überschreibt standardmäßig keine bereits existierenden Dateien, auch wenn ein Dateiname angegeben wurde. Stattdessen wird eine neue Datei mit einer...
-
PNG Dateien verkleinern!
PNG Dateien sind Bilder, die von zahlreichen Programmen geöffnet werden können (siehe auch: PNG Dateien öffnen und PNG Dateien bearbeiten). Außerdem ist PNG das Standard-Format...
-
PNG Dateien bearbeiten (kostenlos!)
Mit diesen kostenlosen Programmen lassen sich PNG Dateien bearbeiten: Nach dem Öffnen kann man sie dann zum Beispiel drehen, spiegel oder beschneiden: Außerdem Text hinzufügen...
-
Befehlstaste bei Windows: So findet man sie!
Die Befehlstaste auf der Apple-Tastatur (auch Apfeltaste, CMD-Taste oder Command-Taste genannt) gibt es auch unter Windows: Allerdings sieht die Befehlstaste bei Windows nicht nur anders...
-
Javascript “striptags”: HTML Befehle aus Variable entfernen!
PHP hat die Funktion "striptags", mit der sich ganz leicht sämtliche HTML Befehle aus einem Wert entfernen lassen. In Javascript gibt es dafür zwar keinen...
-
FHEM if-Abfrage – Beispiel: Schalten nach Wochentag
In unserem Artikel "Intelligente Zeitschaltuhr mit FHEM" zeigen wir bereits, wie man das Licht oder die Rolläden jeden Tag zu einer bestimmten Zeit schalten kann...
- Suchen und Ersetzen in mehreren Dateien mit Terminal
Hallo!Unter Linux kann ich im Terminal mit find /<Pfad>/<Dateien> -type f -exec sed -i &...
- Tipp: Schnell in allen Dateien auf der Webseite nach Text / Bildern suchen!
- Dateien suchen
- Kann man Suchergebnisse aus mehreren Maschinen gleichzeitig löschen lassen?
- iOS auf einer externen Festplatte - auf mehreren Geräten laufen lassen
Datei suchen: Dateien und Texte unter Linux finden