Dieter Kluenter wrote:
wie waere es mit test -n quelle/*.bla | mv quelle/*.bla /ziel
Vorher zu pruefen, ob es was zu verschieben gibt, ist natuerlich eine elegantere Loesung als das Umleiten der Fehlermeldungen nach /dev/null, aber so wird es nicht funktionieren. Falls es keine zum Muster passende Datei gibt, so uebergibt die bash einfach das Muster selbst als Argument, so dass der getestete String niemals leer werden kann. Gibt es mehr als eine passende Datei, so gibt's zur Abwechslung eine Fehlermeldung von test, weil nur ein Argument hinter -n erwartet wird. Ausserdem meintest Du statt | bestimmt &&. Wenn man den Nachteil, auch andere Fehlermeldungen (z.B. "Permission denied", "No space left on device", ...) nicht mitzubekommen, dann bleibt das Umleiten von stderr nach /dev/null die einfachste Loesung. Ansonsten wird wohl eine etwas aufwaendigere Konstruktion faellig, z.B. (ungetestet): for i in quelle/*.bla; do test -f "$i" && mv "$i" /ziel; done Ist nicht schoen, sollte aber (falls die betreffenden Dateinamen keine Leerzeichen enthalten!) funktionieren. Der test-Aufruf verhindert eine Fehlermeldung, falls es keine passenden Dateien gibt und die Schleife einmal mit dem Muster selbst als Wert fuer i durchlaufen wird. Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org - eilert@linuxfreak.com http://www.informatik.uni-bremen.de/~eilert/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (1)
-
eilert@Informatik.Uni-Bremen.DE