Toon posts:

vreemd find/grep/rm gedrag

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer het volgende commando uit te voeren:

find /home/ftp/ -type f -mtime +30 -print0 | grep -v 12012-KLERP | xargs -0 rm -iv

Om alle files ouder dan 30 dagen te vinden in de directory /home/ftp, buiten de files met "12012-klerp" in hun pad, om ze vervolgens te deleten.
Als ik -print0 en -0 weg laat slaat kan rm geen files verwijderen waar spaces in de filename voorkomen. Als ik print0 toevoeg kan grep er niet meer aan uit omdat alles op 1 grote lijn komt te staan.

Iemand enig idee hoe ik dit kan doen?
bedankt

Verwijderd

Je kan die find en grep commando's toch samenvoegen tot 1 find commando mbv "-path <expression>"?

[ Voor 14% gewijzigd door Verwijderd op 22-12-2005 11:24 ]


  • tsjoender
  • Registratie: April 2005
  • Nu online
Probeer maar eens:

find /home/ftp -type f -name ! 12012-KLERP -mtime +30 -exec rm -iv {} \;

Zelf heb ik nog nooit inverse matches met find gebruikt dus probeer het voorzichting ;)

Wat zeker moet werken is dit:

find /home/ftp -type f -mtime +30 -exec rm -iv {} \;

Maar dit houdt natuurlijk geen rekening met de files die je wilt houden. Spaties in bestands/directory namen zijn geen probleem met de -exec optie.

Je kunt ook eerst:

find /home/ftp -type f -name ! 12012-KLERP -mtime +30

proberen om te kijken of de lijst met bestanden matcht met wat je weg wilt gooien.

Verwijderd

Topicstarter
@ tsjoender: spijtig, had dit:
find /home/ftp/ -mtime +30 -type f -path '/home/ftp/projects/12012-KLERP_supervision/*' -prune -o -print0 | xargs -0 rm -v
geprobeerd voor jouw reply en nu blijken alle files buiten die in 12012 weg te zijn.... nu kan ik natuurlijk moeilijk verder testen :)

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Als je niet precies weet wat je gaat doen met je find; is een echo altijd een goed idee :)
find /home/ftp/ -mtime +30 -type f -path '/home/ftp/projects/12012-KLERP_supervision/*' -prune -o -print0 | xargs -0 echo rm -v

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
bedankt spider, echt superhandig :) (ben nogal noob op vlak van linux shell, het valt misschien op:D)
Ik snap wel niet goed waarom ie met deze extra argumenten op het eerste zicht alle andere argumenten (zoals type en mtime) gewoon negeert...

edit: ik heb een eenvoudigere oplossing gevonden die op het eerste zicht lijkt te werken:
find /home/ftp/ -type f -mtime +30 | grep -v 12012-KLERP | xargs rm -f

[ Voor 26% gewijzigd door Verwijderd op 22-12-2005 13:23 ]

Pagina: 1