Bestimmte Dateien aus vielen Unterordnern löschen

Q

Quarlon

Hallo,

habe mich schon an diversen Stellen schlau gemacht und es mit verschiedenen Ansätzen ausprobiert, aber so richtig will es nicht funkionieren.

Anforderung:
Ich möchte von einem Dateipfad ausgehend aus allen Unterordnern jeweils alle Dateien löschen, außer der aktuellste Version und vier dazugehörige Datein, ausgehend vom Timestamp.

Beispiel zur Anforderung:
Im folgendem Ordner liegen ein paar Dateien

ls -la /pfad/zum/ersten/Unterordern

-rw-rw-r-- 1 maven maven 7241 2012-01-18 11:57 1.jar
-rw-rw-r-- 1 maven maven 32 2012-01-18 11:57 1.jar.md5
-rw-rw-r-- 1 maven maven 40 2012-01-18 11:57 1.jar.sha1
-rw-rw-r-- 1 maven maven 868 2012-01-18 11:57 1.pom
-rw-rw-r-- 1 maven maven 32 2012-01-18 11:57 1.pom.md5
-rw-rw-r-- 1 maven maven 40 2012-01-18 11:57 1.pom.sha1
-rw-rw-r-- 1 maven maven 7240 2012-01-18 14:52 2.jar
-rw-rw-r-- 1 maven maven 32 2012-01-18 14:52 2.jar.md5
-rw-rw-r-- 1 maven maven 40 2012-01-18 14:52 2.jar.sha1
-rw-rw-r-- 1 maven maven 868 2012-01-18 14:52 2.pom
-rw-rw-r-- 1 maven maven 32 2012-01-18 14:52 2.pom.md5
-rw-rw-r-- 1 maven maven 40 2012-01-18 14:52 2.pom.sha1

1.jar und seine dazugehörigen Dateien müssen also gelöscht werden. Es kann aber auch sein, dass noch mehr Versionen davor vorhanden sind. Die müssen dann natürlich auch weg.

Mein Ansatz:

Code:
find /pfad/ -type f -name "*.jar" -exec ls -tr | head -n -6 | xargs -i  rm  '{}' \;

Wenn ich es richtig interpretiere werden so aber aus allen Unterordnern gemeinsam die Dateien angezeigt und von diesen die aktuellsten 6 bleiben bestehen. Ich möchte aber das dies pro Unterordner immer wieder neu ausgeführt wird.
Vielleicht bin ich ja auch komplett auf dem Holzweg. Alternativ könnte ich natürlich im Skript alle Pfade manuell eintragen, aber dann müsste ich ja jedes mal, wenn ein neuer Ordner dazu kommt diesen dort hinterlegen.

Wäre Super, wenn ihr mir hier weiterhelfen könntet, dass das löschen von Datein jeweils pro Unterorder passiert! Also die Dateien liegen immer auf der letzten Ebene eines Pfades, falls euch das weiterhilft.

P.S.: Da dies mein erster Post ist: Hallo Forum!
 
Willkommen im Forum,

Wie wärs mit

Code:
 find pfad1 pfad2 pfad3 ... -type f ...

Aber wenn du eine Versionierung haben willst sieh dir eher git an.
 

Ähnliche Themen

Dateien mit gleicher Größe löschen

Finde Fehler im Code nicht

Endlosschleife /var/named/chroot

Mein Server versendet SPAM in Massen

skript zum löschen doppelter dateien

Zurück
Oben