<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Griff on Michael’s Domain</title><link>https://jeltsch.org/de/tags/griff/</link><description>Recent content in Griff on Michael’s Domain</description><generator>Hugo</generator><language>de</language><copyright>Copyright © 2002 - 2026 Michael Jeltsch.</copyright><lastBuildDate>Fri, 24 Jul 2026 00:18:18 +0300</lastBuildDate><atom:link href="https://jeltsch.org/de/tags/griff/index.xml" rel="self" type="application/rss+xml"/><item><title>Dateien mit dem Befehl „find“ suchen</title><link>https://jeltsch.org/de/finding_files_with_find/</link><pubDate>Mon, 24 Sep 2007 00:00:00 +0000</pubDate><guid>https://jeltsch.org/de/finding_files_with_find/</guid><description>&lt;p&gt;Das Suchen von Dateien mit dem Befehl &lt;em&gt;find&lt;/em&gt; ist eigentlich schwieriger, als es sein sollte. Dieser Befehl findet und listet die größten Dateien (über 200 MB) im gesamten Dateisystem auf:&lt;code&gt;find / -type f -size +200000k -exec ls -lh {} \; | awk '{ print $9 &amp;quot;: &amp;quot; $5 }'&lt;/code&gt;Das Gleiche, aber in einfacherer Syntax:&lt;code&gt;find / -size +200M -ls&lt;/code&gt;Dieser Befehl findet die zuletzt geänderten Dateien im aktuellen Verzeichnis:&lt;code&gt;find . -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort&lt;/code&gt;Und dieser Befehl leitet die Ergebnisse des &lt;em&gt;find&lt;/em&gt;-Befehls an einen anderen Befehl weiter. Zuerst sucht &lt;em&gt;find&lt;/em&gt; nach Quicktime-Filmen (anhand der Dateiendung .mov) und anschließend konvertiert &lt;em&gt;ffmpeg&lt;/em&gt; diese in AVI-Dateien.&lt;code&gt;find . -name '*.mov' -exec sh -c 'ffmpeg -i &amp;quot;$0&amp;quot; -sameq &amp;quot;${0%%.mov}.avi&amp;quot;' {} \;&lt;/code&gt;Dieser Befehl findet und listet alle Dateinamen auf, die die Zeichenfolge „bitcoin“ enthalten:&lt;code&gt;find . -name '*bitcoin*' -ls&lt;/code&gt;Und dieser Befehl findet Quicktime-Filme und löscht sie:&lt;code&gt;find . -name '*.mov' -exec sh -c 'rm &amp;quot;$0&amp;quot;' {} \;&lt;/code&gt;Und dieser Befehl findet Dateien, die in den letzten 2 Minuten geändert (erstellt oder aktualisiert) wurden:&lt;code&gt;find . -cmin 2&lt;/code&gt;Dieser Befehl findet Datenmüll, den du von einem Macintosh kopiert hast und den du unter Linux nicht benötigst:&lt;code&gt;find . -name '*.DS_Store' -type f -delete&lt;/code&gt;Ähnliches gilt hier:&lt;code&gt;find . -name '._*' -type f -delete&lt;/code&gt;Befindet man sich im Stammverzeichnis, sollte dies alle Dateien mit dem Namen „syncthing“ finden:&lt;code&gt;find . -name 'syncthing' -ls&lt;/code&gt;Und damit werden alle Dateien im Verzeichnis /home gefunden, die größer als 200 MB sind:&lt;code&gt;find /home -size +200M -ls&lt;/code&gt;Finde rekursiv alle Dateien, die auf .gz enden, und zähle sie:&lt;code&gt;find . -name '*.gz' | wc -l&lt;/code&gt;Suche rekursiv nach allen Dateien, die NICHT auf .gz enden, und zähle sie:&lt;code&gt;find . -not -name '*.gz' | wc -l&lt;/code&gt;Wenn Sie den Inhalt von Textdateien rekursiv durchsuchen möchten, müssen Sie den Befehl &lt;code&gt;grep&lt;/code&gt; verwenden:&lt;code&gt;grep -rnw '/Pfad/zum/Zielverzeichnis' -e 'Muster'&lt;/code&gt;Wenn Sie nach PDF-Dateien suchen, die im Oktober 2024 geändert wurden:&lt;code&gt;sudo find / -type f -name &amp;quot;*.pdf&amp;quot; -newermt &amp;quot;2024-10-01&amp;quot; ! -newermt &amp;quot;2024-11-01&amp;quot; 2&amp;gt;/dev/null&lt;/code&gt;&lt;/p&gt;</description></item><item><title>grep zum Durchsuchen von Dateiinhalten oder der Ausgabe von „rpm -qa“</title><link>https://jeltsch.org/de/grep_to_search_for_file_content_or_rpm_qa_output/</link><pubDate>Fri, 25 May 2007 00:00:00 +0000</pubDate><guid>https://jeltsch.org/de/grep_to_search_for_file_content_or_rpm_qa_output/</guid><description>&lt;p&gt;Um ein bestimmtes Verzeichnis (path_to_directory) und alle seine Unterverzeichnisse (-r für rekursiv) nach Dateien zu durchsuchen, die eine bestimmte Textzeichenfolge enthalten, verwenden Sie den folgenden Befehl: &lt;code&gt;grep -r „textstring“ path_to_directory&lt;/code&gt;Sehr nützlich ist es auch, die Ausgabe eines anderen Prozesses über eine Pipe an grep weiterzuleiten. Beispielsweise möchten Sie wissen, ob ein bestimmtes RPM-Paket auf Ihrem System installiert ist, können sich aber nicht an den genauen Namen erinnern. Daher können Sie den Befehl „rpm -q packagename“ nicht verwenden. In diesem Fall können Sie mit &lt;code&gt;rpm -qa&lt;/code&gt; alle installierten Pakete abfragen und diese Ausgabe dann an &lt;code&gt;grep&lt;/code&gt; weiterleiten, damit &lt;code&gt;grep&lt;/code&gt; nach einer Teilzeichenfolge des Paketnamens sucht, an die Sie sich erinnern:&lt;code&gt;rpm -qa | grep Teilzeichenfolge&lt;/code&gt;Wenn beispielsweise das Paket „modutils-2.4.22-8“ installiert ist, müssen Sie rpm fragen: &lt;code&gt;rpm -q modutils ODER rpm -q modutils-2.4.22&lt;/code&gt;, um eine Antwort zu erhalten. Die Abfrage &lt;code&gt;rpm -q modutils-2.4&lt;/code&gt; würde ergeben: Das Paket &lt;code&gt;modutils-2.4&lt;/code&gt; ist nicht installiert. Wenn Sie also den genauen Namen des Pakets nicht kennen, ist es am sichersten, die &lt;code&gt;rpm&lt;/code&gt;-Ausgabe mit &lt;code&gt;grep&lt;/code&gt; nach etwas zu durchsuchen, an das Sie sich genau erinnern.&lt;/p&gt;</description></item><item><title>Rekursive Suche</title><link>https://jeltsch.org/de/recursive_grep/</link><pubDate>Thu, 05 Apr 2007 00:00:00 +0000</pubDate><guid>https://jeltsch.org/de/recursive_grep/</guid><description>&lt;p&gt;grep (ohne Berücksichtigung der Groß-/Kleinschreibung, rekursiv) grep bietet keine Möglichkeit, die Verzeichnisstruktur rekursiv zu durchsuchen. Der folgende Befehl durchsucht beispielsweise nur alle Dateien im aktuellen Verzeichnis: &lt;code&gt;grep bacteria *&lt;/code&gt; Um die Suche groß-/kleinschreibungsunabhängig zu machen, kann man das Flag -i verwenden: &lt;code&gt;grep -i bacteria *&lt;/code&gt;Wenn Sie jedoch eine rekursive Suche durchführen möchten, müssen Sie eine recht komplizierte Konstruktion aus UNIX-Befehlen verwenden, um dieses Ziel zu erreichen:&lt;code&gt;find ~/Mail -type f -exec grep 'bacteria' {} \; -print&lt;/code&gt;Dieser Befehl durchsucht rekursiv das Verzeichnis „Mail“ des aktuellen Benutzers und gibt alle Zeilen aus, die das Wort „bacteria“ enthalten.&lt;/p&gt;</description></item></channel></rss>