Wusstet ihr, dass `find` und `xargs` zusammen echte Superkräfte haben?
-
Wusstet ihr, dass `find` und `xargs` zusammen echte Superkräfte haben?
`find . -name "*.log" -mtime +30 | xargs rm`
Löscht alle .log-Dateien älter als 30 Tage. Einmal verstanden, nie wieder vergessen – und das Terminal fühlt sich plötzlich weniger einschüchternd an.


-
Wusstet ihr, dass `find` und `xargs` zusammen echte Superkräfte haben?
`find . -name "*.log" -mtime +30 | xargs rm`
Löscht alle .log-Dateien älter als 30 Tage. Einmal verstanden, nie wieder vergessen – und das Terminal fühlt sich plötzlich weniger einschüchternd an.


find hat dafür -exec, damit umgehst du einige Probleme wie z.B. Leerzeichen in Dateinamen, die du sonst mit | xargs hättest.
In deinem Fall gibt es sogar direkt -delete
$ find . -name "*.log" -mtime +30 -delete -
Wusstet ihr, dass `find` und `xargs` zusammen echte Superkräfte haben?
`find . -name "*.log" -mtime +30 | xargs rm`
Löscht alle .log-Dateien älter als 30 Tage. Einmal verstanden, nie wieder vergessen – und das Terminal fühlt sich plötzlich weniger einschüchternd an.


@reeeen neulich hattest du noch in deinem Beitrag erwähnt; erstmal bei "xargs echo", statt "xargs rm" zu nehmen - für die nicht so Risikofreudigen

-
Wusstet ihr, dass `find` und `xargs` zusammen echte Superkräfte haben?
`find . -name "*.log" -mtime +30 | xargs rm`
Löscht alle .log-Dateien älter als 30 Tage. Einmal verstanden, nie wieder vergessen – und das Terminal fühlt sich plötzlich weniger einschüchternd an.

@reeeen Nur wenn keine Whitespaces in den Dateinamen sind. Robuster:find . -name "*.log" -mtime +30 -print0 | xargs -0 rm -
@reeeen Nur wenn keine Whitespaces in den Dateinamen sind. Robuster:
find . -name "*.log" -mtime +30 -print0 | xargs -0 rm@rainer Wieder was gelernt!
-
Wusstet ihr, dass `find` und `xargs` zusammen echte Superkräfte haben?
`find . -name "*.log" -mtime +30 | xargs rm`
Löscht alle .log-Dateien älter als 30 Tage. Einmal verstanden, nie wieder vergessen – und das Terminal fühlt sich plötzlich weniger einschüchternd an.


Und wenn es zu viele Dateien sind, läuft die Kommandozeile über. Daher besser die Option -delete nehmen.
-
Und wenn es zu viele Dateien sind, läuft die Kommandozeile über. Daher besser die Option -delete nehmen.
@caravantraveller Merci

-
Und wenn es zu viele Dateien sind, läuft die Kommandozeile über. Daher besser die Option -delete nehmen.
@caravantraveller @reeeen da muss ich leider widersprechen: sowohl `find -exec {} +` als auch xargs starten das angegebene Programm nur mit so vielen Parametern, wie die Kommandozeile verträgt und sammeln dann weier für den nächsten auruf.
-
@caravantraveller @reeeen da muss ich leider widersprechen: sowohl `find -exec {} +` als auch xargs starten das angegebene Programm nur mit so vielen Parametern, wie die Kommandozeile verträgt und sammeln dann weier für den nächsten auruf.
-
System shared this topic