gleichnamige Dateien löschen

Siegfried Peter lug at si-peter.de
Wed Oct 3 18:28:12 CEST 2012



Am Mittwoch, den 03.10.2012, 15:57 +0200 schrieb Jan Seiffert:
> Siegfried Peter schrieb:
> > Hallo Listlinge,
> > irgendwie komme ich alter Knochen im Moment nicht auf den richtigen
> > Lösungsansatz.
> > Ich habe hier ein Verzeichnis /home/user/1/2/3/ mit Unterordnern nach
> > dem Muster /Jahr/Monat/Tag/Stunde/
> > In diesen Unterordnern befinden sich jede Menge Dateien mit gleichem
> > Namen aber verschiedenem Inhalt.
> > Hiervon soll jeweils nur die neueste Datei erhalten bleiben.
> 
> Meinst du die zeitlich neuste mit unterschiedlichem Inhalt oder
> die Zeitlich neuste mit gleichem Inhalt?
> Oder wie oder was?
> Die genauen Details wie du es haben willst sind da sehr wichtig.
Ich meinte wirklich nur die zeitlich neueste Datei (der Inhalt ist egal)
> 
> > Kann mir bitte Jemand hilfreich in die Seite treten?
> 
> Vielleicht hilft dir folgendes für die Zeitlich neuste Datei.
> Achtung, Datumsordner müssen mit führenden Nullen sein.
> 
Ist so gegeben
> Und ja, das kann sicher einer in irgendeinen coolen Einzeiler
> umwandeln...
Der ist nicht unbedingt nötig
> 
> $ cd /home/user/1/2/3
> $ find . -type f
> ./2011/12/24/manfred.txt
> ./2011/12/24/peter.txt
> ./2011/12/28/manfred.txt
> ./2011/12/28/peter.txt
> ./2011/12/30/manfred.txt
> ./2011/12/30/peter.txt
> ./2011/12/22/manfred.txt
> ./2011/12/22/peter.txt
> ./2011/12/20/manfred.txt
> ./2011/12/20/peter.txt
> ./2011/12/21/manfred.txt
> ./2011/12/21/peter.txt
> ./2011/12/26/manfred.txt
> ./2011/12/26/peter.txt
> ./2011/12/23/manfred.txt
> ./2011/12/23/peter.txt
> ./2011/12/25/manfred.txt
> ./2011/12/25/peter.txt
> ./2011/12/31/manfred.txt
> ./2011/12/31/peter.txt
> ./2011/12/27/manfred.txt
> ./2011/12/27/peter.txt
> ./2011/12/29/manfred.txt
> ./2011/12/29/peter.txt
> ./2012/01/05/manfred.txt
> ./2012/01/05/peter.txt
> ./2012/01/07/manfred.txt
> ./2012/01/07/peter.txt
> ./2012/01/15/manfred.txt
> ./2012/01/15/peter.txt
> ./2012/01/13/manfred.txt
> ./2012/01/13/peter.txt
> ./2012/01/11/manfred.txt
> ./2012/01/11/peter.txt
> ./2012/01/19/manfred.txt
> ./2012/01/19/peter.txt
> ./2012/01/18/manfred.txt
> ./2012/01/18/peter.txt
> ./2012/01/16/manfred.txt
> ./2012/01/16/peter.txt
> ./2012/01/02/manfred.txt
> ./2012/01/02/peter.txt
> ./2012/01/04/manfred.txt
> ./2012/01/04/peter.txt
> ./2012/01/10/manfred.txt
> ./2012/01/10/peter.txt
> ./2012/01/20/manfred.txt
> ./2012/01/20/peter.txt
> ./2012/01/17/manfred.txt
> ./2012/01/17/peter.txt
> ./2012/01/14/manfred.txt
> ./2012/01/14/peter.txt
> ./2012/01/12/manfred.txt
> ./2012/01/12/peter.txt
> ./2012/01/08/manfred.txt
> ./2012/01/08/peter.txt
> ./2012/01/01/manfred.txt
> ./2012/01/01/peter.txt
> ./2012/01/09/manfred.txt
> ./2012/01/09/peter.txt
> ./2012/01/03/manfred.txt
> ./2012/01/03/peter.txt
> ./2012/01/06/manfred.txt
> ./2012/01/06/peter.txt
> $ $ find . -type f > ../1.txt
> $ cut -d "/" -f 5 ../1.txt | paste - ../1.txt | sort -r > ../2.txt
> $ awk 'BEGIN {FS="\t";of_name=""} {if(of_name == $1) {print $2} else {of_name = $1}}' ../2.txt > ../to_delete.txt
> $ xargs -a ../to_delete.txt
> ./2012/01/19/peter.txt ./2012/01/18/peter.txt ./2012/01/17/peter.txt ./2012/01/16/peter.txt ./2012/01/15/peter.txt ./2012/01/14/peter.txt ./2012/01/13/peter.txt ./2012/01/12/peter.txt ./2012/01/11/peter.txt ./2012/01/10/peter.txt ./2012/01/09/peter.txt ./2012/01/08/peter.txt ./2012/01/07/peter.txt ./2012/01/06/peter.txt ./2012/01/05/peter.txt ./2012/01/04/peter.txt ./2012/01/03/peter.txt ./2012/01/02/peter.txt ./2012/01/01/peter.txt ./2011/12/31/peter.txt ./2011/12/30/peter.txt ./2011/12/29/peter.txt ./2011/12/28/peter.txt ./2011/12/27/peter.txt ./2011/12/26/peter.txt ./2011/12/25/peter.txt ./2011/12/24/peter.txt ./2011/12/23/peter.txt ./2011/12/22/peter.txt ./2011/12/21/peter.txt ./2011/12/20/peter.txt ./2012/01/19/manfred.txt ./2012/01/18/manfred.txt ./2012/01/17/manfred.txt ./2012/01/16/manfred.txt ./2012/01/15/manfred.txt ./2012/01/14/manfred.txt ./2012/01/13/manfred.txt ./2012/01/12/manfred.txt ./2012/01/11/manfred.txt ./2012/01/10/manfred.txt ./2012/01/09/manfred.txt ./2012/01/0
> 8/manfred.txt ./2012/01/07/manfred.txt ./2012/01/06/manfred.txt ./2012/01/05/manfred.txt ./2012/01/04/manfred.txt ./2012/01/03/manfred.txt ./2012/01/02/manfred.txt ./2012/01/01/manfred.txt ./2011/12/31/manfred.txt ./2011/12/30/manfred.txt ./2011/12/29/manfred.txt ./2011/12/28/manfred.txt ./2011/12/27/manfred.txt ./2011/12/26/manfred.txt ./2011/12/25/manfred.txt ./2011/12/24/manfred.txt ./2011/12/23/manfred.txt ./2011/12/22/manfred.txt ./2011/12/21/manfred.txt ./2011/12/20/manfred.txt
> 
> > Danke
> > 
> > Siegfried
> > 
> > 
> > 
> > 
> 
> Gruss
> 	Jan
> 
Danke Jan,

Dein Lösungsansatz hat mir sehr geholfen.
Ich hab das jetzt mal durchgespielt (natürlich nur an einer Kopie) und
es klappt soweit.
Ich muss die to_delete.txt nur noch durch rm jagen.

Gruß 

Siegfried




More information about the Linux mailing list