find variable

Bash, Shell, PHP, Python, Perl, CGI
neodg
Posts: 38
Joined: 2005-10-19 08:50

find variable

Post by neodg » 2006-11-21 21:55

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.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: find variable

Post by Joe User » 2006-11-21 22:11

Ungetestet:

Code: Select all

/usr/bin/find /path/to/.../ -type d -atime +2 -name "*[[:digit:]][[:digit:]][[:digit:]]*" -print0 | xargs -0 rm -r
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

neodg
Posts: 38
Joined: 2005-10-19 08:50

Re: find variable

Post by neodg » 2006-11-21 22:16

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

juergen
Posts: 133
Joined: 2004-03-30 14:44

Re: find variable

Post by juergen » 2006-11-21 22:38

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

neodg
Posts: 38
Joined: 2005-10-19 08:50

Re: find variable

Post by neodg » 2006-11-21 22:44

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.

spasswolf
Posts: 27
Joined: 2006-06-09 11:00

Re: find variable

Post by spasswolf » 2006-11-21 22:46

Probier mal das:

Code: Select all

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

neodg
Posts: 38
Joined: 2005-10-19 08:50

Re: find variable

Post by neodg » 2006-11-21 22:53

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...

juergen
Posts: 133
Joined: 2004-03-30 14:44

Re: find variable

Post by juergen » 2006-11-21 22:56

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