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

Backup, Restore und Transfer von Daten
fulltilt
Posts: 366
Joined: 2006-08-27 02:06
 

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

Post 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?
User avatar
Joe User
Project Manager
Project Manager
Posts: 11183
Joined: 2003-02-27 01:00
Location: Hamburg
 

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

Post 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
fulltilt
Posts: 366
Joined: 2006-08-27 02:06
 

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

Post 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
User avatar
Joe User
Project Manager
Project Manager
Posts: 11183
Joined: 2003-02-27 01:00
Location: Hamburg
 

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

Post 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?
fulltilt
Posts: 366
Joined: 2006-08-27 02:06
 

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

Post 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?
User avatar
Joe User
Project Manager
Project Manager
Posts: 11183
Joined: 2003-02-27 01:00
Location: Hamburg
 

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

Post 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...
User avatar
Joe User
Project Manager
Project Manager
Posts: 11183
Joined: 2003-02-27 01:00
Location: Hamburg
 

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

Post 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
fulltilt
Posts: 366
Joined: 2006-08-27 02:06
 

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

Post 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
Last edited by fulltilt on 2007-10-16 12:27, edited 1 time in total.
fulltilt
Posts: 366
Joined: 2006-08-27 02:06
 

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

Post 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]
fulltilt
Posts: 366
Joined: 2006-08-27 02:06
 

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

Post 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