Viele Dateien auf einmal bearbeiten mit find und xargs
find sucht Dateien nach Namen, Alter oder Größe – und mit xargs schickst du die Treffer stapelweise an einen anderen Befehl. So löschst, verschiebst oder konvertierst du hunderte Dateien mit einer Zeile. Inklusive der wichtigsten Sicherheits-Regel.
find ist das Schweizer Taschenmesser für Dateien: Es sucht rekursiv nach Namen, Endung, Alter oder Größe. Kombiniert mit xargs machst du daraus eine Stapelverarbeitung.
Erst finden – und immer zuerst nur anschauen
find . -name "*.tmp" # nur auflisten, was gefunden wirdWichtigste Regel: Bevor du löschst oder umbaust, lass dir die Treffer erst anzeigen. So merkst du sofort, wenn find mehr erwischt als gedacht.
Dann handeln
find . -name "*.tmp" -delete # alle .tmp-Dateien löschen
find . -type f -mtime +30 -name "*.log" # Logs, die älter als 30 Tage sind-type f– nur Dateien (keine Ordner)-mtime +30– zuletzt geändert vor mehr als 30 Tagen- **
-name "*.log"** – Namensmuster
An einen anderen Befehl übergeben: xargs
Wenn find selbst nicht kann, was du willst, reichst du die Treffer per xargs weiter:
# Alle PNGs mit ImageMagick verkleinern
find . -name "*.png" -print0 | xargs -0 -I{} mogrify -resize 1200x {}Der Schlüssel steht in -print0 und xargs -0: Sie trennen die Dateinamen mit einem Null-Zeichen statt mit Leerzeichen. Ohne das gehen Dateinamen mit Leerzeichen kaputt – ein Klassiker, der schon viele Skripte zerlegt hat. Nutz die beiden immer zusammen.
Willst du auf Nummer sicher gehen, häng vorm scharfen Lauf ein echo davor: xargs -0 -I{} echo mogrify … zeigt dir jeden Befehl, ohne ihn auszuführen.
Solche Automatisierungen nehmen dir stumpfe Handarbeit ab. Noch mehr davon gibt's auf code.bymw.de.
Du brauchst mehr als ein Snippet?
Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.
Projekt anfragen →Verwandte Snippets
Im ganzen Projekt suchen mit grep -rn (und warum ripgrep schneller ist)
„Wo steht dieser Text nochmal?" – mit grep -rn durchsuchst du in Sekunden dein ganzes Projekt inklusive Zeilennummern. Und mit ripgrep (rg) geht es noch schneller, weil es .gitignore automatisch beachtet.
Ordner sicher übertragen und deployen mit rsync
rsync kopiert nur, was sich wirklich geändert hat – ideal fürs Deployen einer Website oder ein schnelles Backup. Mit --dry-run siehst du vorher genau, was passieren würde, bevor etwas überschrieben oder gelöscht wird.
429 bei KI-APIs richtig behandeln – Retry mit Exponential Backoff (Bash)
Jede KI-API (Claude, OpenAI, Gemini) drosselt mit HTTP 429, wenn du zu schnell anfragst. Wer sofort stur weiterhämmert, wird noch länger blockiert. So respektierst du den Retry-After-Header und wartest exponentiell.