[email protected] <[email protected]> (Do 15 Aug 2019 17:51:16 CEST):
>
> Im Verzeichnis befinden sich vier Verzeichnisse und ca. 140 Dateien.
> Beim Aufruf von "ls -al *.tex" ist alles wie erwartet, auch "ls -al *.tex | 
> wc -l" gibt ein plausibles Ergebnis.
> Beim Aufruf von "ls -al *.doc" erhalte ich folgende Fehlermeldung:
> ls: Ungültige Option -- e
> Dieselbe Fehlermeldung gibt es beim Aufruf von "ls *.doc", "ls -a *.doc" und 
> "ls -l *.doc".
> Der Aufruf von "ls -al ./*.doc" funktioniert dagegen wie erwartet.
> In einem anderen Verzeichnis mit .tex- und .doc-Dateien funktioniert "ls -al 
> *.doc" wie erwartet.

Du willst etwas über die Shell lernen. Nicht über „ls“.

Wenn Du eine Datei „-e foo.doc“ und vielleicht noch „x.doc“ in Deinem 
Verzeichnis hast und dann

    ls *.doc

aufrufst, wird die Shell Dir daraus

    ls '-efeu.doc' 'x.doc'

machen. „ls“ hat keine Ahnung, daß das „-e“ keine Option sein soll. Du
müssstest das im Tracemodus der Shell gut beobachten können:

    set -x
    ls *.doc
    set +x

Was tut man dagegen? Eine Lösung hast Du schon gefunden

    ls ./*.doc

Denn dann wird daraus

    ls './-efeu.doc' 'x.doc'

und „ls“ ist glücklich. Das ist der generische Weg. Ein Weg, der bei
*vielen* Tools funktioniert, wäre:

    ls -- *.doc

Die Option „--“ wird von *vielen* Tools verstanden als „jetzt kommen
keine Optionen mehr, auch wenn die weiteren Argumente so aussehen wie
Optionen“.

    Best regards from Dresden/Germany
    Viele Grüße aus Dresden
    Heiko Schlittermann
--
 SCHLITTERMANN.de ---------------------------- internet & unix support -
 Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
 gnupg encrypted messages are welcome --------------- key ID: F69376CE -
 ! key id 7CBF764A and 972EAC9F are revoked since 2015-01 ------------ -

Attachment: signature.asc
Description: PGP signature

Antwort per Email an