Page 1 of 1

Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 08:37
by fulltilt
Ich habe hier einen 20 GB Ordner mit Images.
Dieser soll nun aufgeräumt werden d.h. alle Dateien älter als ein Jahr löschen.

Das Problem dabei ist das nur bestimmte Dateien gelöscht werden dürfen:

a137062_mainpic.jpg
a100362_addpic0.img

Die dateien die zum Löschen in Frage kommen haben als Dateinamen:

xxxxxx_addpic0.img oder xxxxxxx_mainpic.jpg

Darunter befinden sich auch andere .JPG oder .IMG wie xxxxx.JPG diese dürefen nicht gelöscht werden - nur die mit *_addpic0.img

Wie kann ich das anstellen?

Re: Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 09:27
by Joe User

Code: Select all

find /path/to/images/ -type f -mtime 365 -name *_addpic0.img -print0 | xargs -0 rm
find /path/to/images/ -type f -mtime 365 -name *_mainpic.jpg -print0 | xargs -0 rm

Re: Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 10:33
by fulltilt
Danke Joe,

sieht gut aus - ich bekomme aber diese Ausgabe:
rm: fehlender Operand

muss da noch ein -exec vor rm ?
Joe User wrote:

Code: Select all

find /path/to/images/ -type f -mtime 365 -name *_addpic0.img -print0 | xargs -0 rm
find /path/to/images/ -type f -mtime 365 -name *_mainpic.jpg -print0 | xargs -0 rm

Re: Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 11:02
by Joe User
IIRC legt Debian einige fragwürdige Aliase an, unter Anderem auch für rm...
Du hast nicht zufällig einen Alias für rm?
Fipptehler?

Re: Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 11:33
by fulltilt
Kein alias für rm ...
In der Hilfe wird angegeben:

Code: Select all

Um Dateien zu entfernen, deren Namen mit „-" beginnen
rm -- -foo
rm  ./-foo
muss das noch hinter rm > rm ./ oder rm -- ?

Debian 4.0
Joe User wrote:IIRC legt Debian einige fragwürdige Aliase an, unter Anderem auch für rm...
Du hast nicht zufällig einen Alias für rm?
Fipptehler?

Re: Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 11:39
by Joe User
Nein, weder hinter noch vor rm fehlt etwas. Gemäss Manpage und Verifizierung unter Gentoo und openSUSE funktioniert mein obiges find/rm problemlos.

Ich liebe Debian immer mehr...

Re: Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 11:57
by Joe User
OK, mein Fipptehler :oops: Vor dem 365 fehlt ein +

Code: Select all

find /path/to/images/ -type f -mtime +365 -name *_addpic0.img -print0 | xargs -0 rm
find /path/to/images/ -type f -mtime +365 -name *_mainpic.jpg -print0 | xargs -0 rm

Re: Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 12:14
by fulltilt
Danke Joe,

Leider immer noch das gleiche
rm: fehlender Operand
Joe User wrote:OK, mein Fipptehler :oops: Vor dem 365 fehlt ein +

Code: Select all

find /path/to/images/ -type f -mtime +365 -name *_addpic0.img -print0 | xargs -0 rm
find /path/to/images/ -type f -mtime +365 -name *_mainpic.jpg -print0 | xargs -0 rm

Re: Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 12:26
by fulltilt
Also mit print0 | xargs -0 -i rm

läuft der scan durch - aber gelöscht wird nix.
Tausende > rm: fehlender Operand
Joe User wrote:OK, mein Fipptehler :oops: Vor dem 365 fehlt ein +

Code: Select all

find /path/to/images/ -type f -mtime +365 -name *_addpic0.img -print0 | xargs -0 rm
find /path/to/images/ -type f -mtime +365 -name *_mainpic.jpg -print0 | xargs -0 rm
[/quote]

Re: Find - Delete > aus Ordner nur bestimmte Dateien älter als ...

Posted: 2007-10-16 12:48
by fulltilt
Danke Joe - klappt jetzt :-)

Code: Select all

 "*_addpic0.jpg" -print0 | xargs -0 rm
den / habe ich entfernt und *_addpic0.jpg in " " gesetzt.

Code: Select all

/*_addpic0.jpg -print0 | xargs -0 rm