Re: Hat find etwas gefunden?
On Day 61 of Confusion 3171, Christian Selmer wrote:
> Hallo NG,
> folgende Frage zu find:
> Wie kann ich in einem Skript feststellen, ob find gemäß den
> formulierten Bedingungen Datei(en) gefunden hat, dh 'erfolgreich'
> war. Der exit-Status von find hilft hier wohl nicht weiter.
Direkt geht das gar nicht. Es gibt dann aber immer noch die Variante
"von hinten durch die Brust ins Auge"
if [ $(find -maxdepth 1 -name \*.blafasel -cmin -1 | wc -w) -gt 0 ] ;then echo found;else echo not found;fi
> Hintergrund ist folgendes:
> Auf meinem WindowsRechner arbeite ich mit lyx, wo leider die
> Postscripterzeugung nicht funktioniert. Also kopiere ich die
> lyx-Dateien auf einen Linuxrechner, erzeuge dort automatisiert
> Postscript (lyx -e ps) und kopiere die Postscript-Dateien dann zurück
> auf meinen Windowsrechner.
>
> An folgendem Skript stört mich, dass die Postscripterzeugung ggf
> mehrfach stattfindet, dh bis die lyx-Dateien älter als eine Minute
> sind.
>
> #!/bin/sh
> while true
> do
> find /home/yy/lyx/ -maxdepth 1 -name '*.lyx' -cmin -1 -exec lyx -e ps {} \;
> sleep 5
> done
> exit 0
Ja. ist klar. Du läßt hier aller 5 Sekunden nachsehen ob es Dateien gibt
die junger als eine Minute sind und diese dann verarbeiten. Das muß
zwangsläufig schief gehen.
> Mir kam die Idee, vorher zu überprüfen, ob in diesem Verzeichnis
> ps-Dateien liegen, die jünger als eine Minute sind, aber auch hier
Das wird genauso murks, weil wenn du die Konvertierung nur laufen läßt
wenn es keine ps-Dateien gibt die jünger als eine Minute sind dann
kannst du da oben auch gleich ein sleep 60 reinschreiben.
Du müßtest einen ganz anderen Ansatzt wählen. Du müßtest feststellen ob
es in dem Verzeichnis *.lyx Dateien gibt zu denen keine *.ps Datei
existiert und diese dann Konvertieren. Das ist aber je nach dem wie du das
Verzeichnis aufzuräumen gedenkst auch nicht ganz unproblematisch.
> bräuchte ich ja den 'Erfolg' des find-Kommandos.
> Hat jemand eine Idee?
Der saubere Weg wäre die Dateien nach erfolgter Verarbeitung zu
verschieben/umzubenennen oder zu löschen.
ttyl8er, t.k.
--
Millions long for immortality who do not know what to do with
themselves on a rainy Sunday afternoon.
-- Susan Ertz
Reply to: