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:
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!
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!