jm.2009@web.de jm.2009@web.de (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 ------------ -