Löschen von Unix Dateien älter x Tage und nur 3 Generationen

F

Ferdinand

Grünschnabel
Liebe Gemeinde,

also nochmal und ich versuch das Ganze etwas besser zu erklären!

Ich hab in einem Verzeichnis mehrere Dateien aus verschiedenen Namen.

Nun das Problem!

Ich möchte alle Dateien *bis auf die letzten 3 neueren Dateien* löschen.
d.h. es sollen alle hier angezeigten Dateien bis auf die BLAU gekennzeichneten gelöscht werden.

-rwxr-xr-x 1 user1 user1 4418800 Oct 6 2004 tra-041006-2212.old
-rwxr-xr-x 1 user1 user1 4760752 Jan 26 2005 tra-050126-1834.old
-rwxr-xr-x 1 user1 user1 5249744 Sep 15 16:44 tra-050915-1643.old
-rwxr-xr-x 1 user1 user1 5249744 Sep 15 17:31 tra-050915-1731.old
-rwxr-xr-x 1 user1 user1 5250840 Sep 20 12:17 tra-050920-1217.old

-rwxr-xr-x 1 user1 user1 4681720 Jan 26 2005 ppr-050126-1834.old
-rwxr-xr-x 1 user1 user1 2338816 Aug 18 10:05 ppr-050818-1005.old
-rwxr-xr-x 1 user1 user1 2338816 Aug 18 10:37 ppr-050818-1037.old
-rwxr-xr-x 1 user1 user1 2338816 Aug 18 10:54 ppr-050818-1054.old
-rwxr-xr-x 1 user1 user1 2342912 Sep 16 08:59 ppr-050916-0858.old
-rwxr-xr-x 1 user1 user1 2342912 Sep 16 12:20 ppr-050916-1220.old

-rwxr-xr-x 1 user1 user1 4854304 Jun 3 12:26 sts-050603-1225.old
-rwxr-xr-x 1 user1 user1 4854776 Jun 8 15:02 sts-050608-1501.old
-rwxr-xr-x 1 user1 user1 4885608 Jul 4 15:30 sts-050704-1527.old
-rwxr-xr-x 1 user1 user1 4885704 Jul 5 15:20 sts-050705-1519.old
-rwxr-xr-x 1 user1 user1 4885992 Jul 6 18:14 sts-050706-1811.old
-rwxr-xr-x 1 user1 user1 4891512 Jul 19 06:44 sts-050719-0644.old
-rwxr-xr-x 1 user1 user1 4891896 Sep 15 09:58 sts-050915-0957.old
-rwxr-xr-x 1 user1 user1 4918104 Sep 22 14:37 sts-050922-1435.old
-rwxr-xr-x 1 user1 user1 4918176 Sep 29 17:38 sts-050929-1736.old
-rwxr-xr-x 1 user1 user1 4918280 Sep 30 16:30 sts-050930-1629.old
-rwxr-xr-x 1 user1 user1 4918344 Oct 4 09:47 sts-051004-0946.old


Grüße Ferdinand
 
Zuletzt bearbeitet:
so ging's glaub ich:
Code:
ls -tr | head -n -3| while read file
do
 echo "$file"
 # rm "$file"
done
 
Ja. Oder so:
Code:
ls -tr | head -n -3 | xargs -i  rm  '{}'
 
Das führt leider nicht zum gewünschten Erfolg.
Hab nochmal ein neues Thema erstellt, in dem man sieht, dass in den Verzeichnis mehrere verschiedene Dateien sind
 
Ferdinand schrieb:
Das führt leider nicht zum gewünschten Erfolg.
Hab nochmal ein neues Thema erstellt, in dem man sieht, dass in den Verzeichnis mehrere verschiedene Dateien sind
Hallo
Also wenn deine Dateien alle in einem Ordner liegen, dann hast du hier schon einige Lössungsansätze bekommen, die alle mit ein klein wenig Eigeninitiative funktionieren können.

Du setzt die ls -ltr einfach in deinen find-Befehl ein ( -exec...),schickst das in die pipe über tail/head (je nach Variante), nach xargs und löscht die entsprechend übriggebliebenen Dateien.

man ls
man tail
man head
man xargs
sind gute Freunde.

Ansonsten musst du deine Frage präziser erklären, bzw was nicht geht und was du versucht hast.
Das ist die übliche Vorgehensweise mit der größten Chance auf Hilfe hier.

Gruß Wolfgang
 
Ferdinand schrieb:
Das führt leider nicht zum gewünschten Erfolg.
...
mehrere verschiedene Dateien sind

sollen nur die Log-Dateien der Typs sts-....... gelöscht werden
Code:
ls -rt
ersetzen mit
Code:
ls -rt sts*

usw.
 

Ähnliche Themen

Mit AWK verschiedene Felder verschiedener Zeilen vergleichen

XEN 4.3 GMP Problem

Creative Labs SoundBlaster Audigy 2 ZS unter Debian / Kernel 3.16

Finde Fehler im Code nicht

Kleines Rsnapshot/Cron Problem

Zurück
Oben