Page 1 of 1

find variable

Posted: 2006-11-21 21:55
by neodg
Hallo!

Ich steh grad aufm Schlauch, find soll in einem Ordner alle Verzeichnisse (!) auflisten die 3 oder mehr zahlen drinnen hat + älter als 2 Tage ist - die Verzeishnisse sammt Inhalt sollen dann gelöscht werden.

Code: Select all

 /usr/bin/find /verzeichnis/ -atime +2 -exec rm {} ;
löscht alle Dateien die älter als 2 Tage sind, aber das mit den Verzsichnissen mir 3 oder mehr zalhlen im Namen, da hänge ich grad.

Re: find variable

Posted: 2006-11-21 22:11
by Joe User
Ungetestet:

Code: Select all

/usr/bin/find /path/to/.../ -type d -atime +2 -name "*[[:digit:]][[:digit:]][[:digit:]]*" -print0 | xargs -0 rm -r

Re: find variable

Posted: 2006-11-21 22:16
by neodg
Joe User wrote:Ungetestet:

Code: Select all

/usr/bin/find /path/to/.../ -type d -atime +2 -name "*[[:digit:]][[:digit:]][[:digit:]]*" -print0 | xargs -0 rm -r
Danke! Ne, das tuts nicht, zeigt gar nixe an...

EDIT: hab natürlich das xargs -0 rm -r zum testen rausgenommen

Re: find variable

Posted: 2006-11-21 22:38
by juergen
neodg wrote:
Joe User wrote:Ungetestet:

Code: Select all

/usr/bin/find /path/to/.../ -type d -atime +2 -name "*[[:digit:]][[:digit:]][[:digit:]]*" -print0 | xargs -0 rm -r
Danke! Ne, das tuts nicht, zeigt gar nixe an...

EDIT: hab natürlich das xargs -0 rm -r zum testen rausgenommen
Also ich glaube -atime +2 ist nicht das, was du willst, da es die Einträge mit einer access time > 2 Tage findet. Das bedeutet, Dateien die seit 2 Tagen nicht geöffnet wurden. Ich denke du willst: -ctime +2

Re: find variable

Posted: 2006-11-21 22:44
by neodg
juergen wrote: Also ich glaube -atime +2 ist nicht das, was du willst, da es die Einträge mit einer access time > 2 Tage findet. Das bedeutet, Dateien die seit 2 Tagen nicht geöffnet wurden. Ich denke du willst: -ctime +2
Hallo!

Das is im Grunde egal, es soll in einem temporären Ordner die Ordner darin gelöscht werden, die, wieoben beschrieben 3 Nummern drinnen haben, die Zeit is dabei nebensächlich, aber wenn um 23:55 was raufgeladen wurde - das noch läuft und der Cron läuft um Mitternacht werden dem Upload die Füße weg gezogen, deswegen 2 Tage, das is 100%ig sicher und ein Tag mehr tut nicht weh.

Re: find variable

Posted: 2006-11-21 22:46
by spasswolf
Probier mal das:

Code: Select all

/usr/bin/find /path/to/.../ -type d -atime +2 | grep -E '.*[0-9].*[0-9].*[0-9].*'

Re: find variable

Posted: 2006-11-21 22:53
by neodg
Ha!

Ersteres oben tuts eh! Verdammt ich hab nen Schrägstrich vergessen!

Code: Select all

/usr/bin/find /path/to/.../ -type d -atime +2 -name "*[[:digit:]][[:digit:]][[:digit:]]*" -print0 | xargs -0 rm -r
Das tuts! Tut leid, so Amateurfehler mach ich normal nicht...

Re: find variable

Posted: 2006-11-21 22:56
by juergen
neodg wrote:
juergen wrote: Also ich glaube -atime +2 ist nicht das, was du willst, da es die Einträge mit einer access time > 2 Tage findet. Das bedeutet, Dateien die seit 2 Tagen nicht geöffnet wurden. Ich denke du willst: -ctime +2
Hallo!

Das is im Grunde egal, es soll in einem temporären Ordner die Ordner darin gelöscht werden, die, wieoben beschrieben 3 Nummern drinnen haben, die Zeit is dabei nebensächlich, aber wenn um 23:55 was raufgeladen wurde - das noch läuft und der Cron läuft um Mitternacht werden dem Upload die Füße weg gezogen, deswegen 2 Tage, das is 100%ig sicher und ein Tag mehr tut nicht weh.
Na, das ist nicht egal, da schon durch das Durchsuchen der Verzeichnisse, die atime der Verzeichnisse selbst jedesmal hochgesetzt wird. Du wirst als nie auf 2 Tage kommen, wenn der Job regelmässig läuft :-D