Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

bash: ls -d; sollten da nicht (nur) die Ordner angezeigt werden?

0 views
Skip to first unread message

Bernd

unread,
Mar 4, 2023, 6:45:30 AM3/4/23
to
Hi,

siehe Subjekt.
GNU bash, Version 4.4.23(1)-release (x86_64-suse-linux-gnu)
ls (GNU coreutils) 8.32

========8X=========
bernd@host:~/tmp> l
l
drwxr-xr-x 3 bernd users 4096 4. Mär 12:37 ./
drwxr-xr-x 29 bernd users 4096 21. Feb 13:14 ../
-rw-r--r-- 1 bernd users 5373433 25. Mär 2022 allday.zip
-rw-r--r-- 1 bernd users 998 27. Aug 2021 Prefer.txt
drwxr-xr-x 2 bernd users 4096 4. Mär 12:37 test/
bernd@host:~/tmp> ls -d
ls -d
.
bernd@host:~/tmp> ls -d .
ls -d .
.
bernd@host:~/tmp> cd ..
cd ..
bernd@host:~> ls -d /tmp
ls -d /tmp
/tmp
bernd@host:~> ls -d tmp
ls -d tmp
tmp
bernd@host:~>
========X8=========

Bernd

Ulli Horlacher

unread,
Mar 4, 2023, 7:45:58 AM3/4/23
to
Bernd <bna...@web.de> wrote:

> siehe Subjekt.

Frage im Body zu wiederholen ist sinnvoll, da man sie dann zitieren kann.


> GNU bash, Version 4.4.23(1)-release (x86_64-suse-linux-gnu)
> ls (GNU coreutils) 8.32
>
> ========8X=========
> bernd@host:~/tmp> l
> l
> drwxr-xr-x 3 bernd users 4096 4. Mär 12:37 ./
> drwxr-xr-x 29 bernd users 4096 21. Feb 13:14 ../
> -rw-r--r-- 1 bernd users 5373433 25. Mär 2022 allday.zip
> -rw-r--r-- 1 bernd users 998 27. Aug 2021 Prefer.txt
> drwxr-xr-x 2 bernd users 4096 4. Mär 12:37 test/

Germanisches locale! *GRUSEL*

Und was ist "l" bei dir?


> bernd@host:~/tmp> ls -d
> ls -d
> .
> bernd@host:~/tmp> ls -d .
> ls -d .
> .

Du hast wohl ls ver-aliased. So was macht man nicht!


> bernd@host:~/tmp> cd ..
> cd ..
> bernd@host:~> ls -d /tmp
> ls -d /tmp
> /tmp
> bernd@host:~> ls -d tmp
> ls -d tmp
> tmp

Und? Wo ist das Problem?
Es werden wie in der Doku geschrieben, die Directories angezeigt und
nicht deren Inhalt.



--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: horl...@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/

Marcel Logen

unread,
Mar 4, 2023, 11:02:41 AM3/4/23
to
Bernd in de.comp.os.unix.shell:

>bernd@host:~/tmp> l
>l
>drwxr-xr-x 3 bernd users 4096 4. Mär 12:37 ./
>drwxr-xr-x 29 bernd users 4096 21. Feb 13:14 ../
>-rw-r--r-- 1 bernd users 5373433 25. Mär 2022 allday.zip
>-rw-r--r-- 1 bernd users 998 27. Aug 2021 Prefer.txt
>drwxr-xr-x 2 bernd users 4096 4. Mär 12:37 test/

"l" ist bei Dir "ls -laF"?

>bernd@host:~/tmp> ls -d
>ls -d
>.
>bernd@host:~/tmp> ls -d .
>ls -d .
>.

Probiere mal "ls -d *".

Marcel

Bernd

unread,
Mar 5, 2023, 7:57:13 AM3/5/23
to
Am 04.03.23 um 13:45 schrieb Ulli Horlacher:
> Bernd <bna...@web.de> wrote:
>
>> siehe Subjekt.
>
> Frage im Body zu wiederholen ist sinnvoll, da man sie dann zitieren kann.
Stimmt, kommt nicht wieder vor.

>> GNU bash, Version 4.4.23(1)-release (x86_64-suse-linux-gnu)
>> ls (GNU coreutils) 8.32
>>
>> ========8X=========
>> bernd@host:~/tmp> l
>> l
>> drwxr-xr-x 3 bernd users 4096 4. Mär 12:37 ./
>> drwxr-xr-x 29 bernd users 4096 21. Feb 13:14 ../
>> -rw-r--r-- 1 bernd users 5373433 25. Mär 2022 allday.zip
>> -rw-r--r-- 1 bernd users 998 27. Aug 2021 Prefer.txt
>> drwxr-xr-x 2 bernd users 4096 4. Mär 12:37 test/
>
> Germanisches locale! *GRUSEL*
Das ist ein Notebook. Da finde ich das schon ganz praktisch.
>
> Und was ist "l" bei dir?
ls -alF
>
>> bernd@host:~/tmp> ls -d
>> ls -d
>> .
>> bernd@host:~/tmp> ls -d .
>> ls -d .
>> .
>
> Du hast wohl ls ver-aliased. So was macht man nicht!
Ach so? Ich find's praktisch. (Wie gesagt Notebook, nix Server)

>> bernd@host:~/tmp> cd ..
>> cd ..
>> bernd@host:~> ls -d /tmp
>> ls -d /tmp
>> /tmp
>> bernd@host:~> ls -d tmp
>> ls -d tmp
>> tmp
>
> Und? Wo ist das Problem?
> Es werden wie in der Doku geschrieben, die Directories angezeigt und
> nicht deren Inhalt.
Naja, es wird genau das eine Verzeichnis angezeigt was ich eh schon
angegeben habe. Ich hatte erwartet das die Ordner in diesen Ordnern
(hier test) angezeigt werden.

bernd@host:~/tmp> ls
allday.zip Prefer.txt test

bernd@host:~/tmp> ls ../tmp/
allday.zip Prefer.txt test

bernd@host:~/tmp> ls -d ../tmp/
../tmp/


Bernd

Bernd

unread,
Mar 5, 2023, 7:57:20 AM3/5/23
to
Am 04.03.23 um 17:02 schrieb Marcel Logen:
Da ist das Ergebnis das gleiche wie bei ls ohne jede Option.


Bernd



Bernd

unread,
Mar 5, 2023, 7:57:23 AM3/5/23
to
Am 04.03.23 um 14:07 schrieb Stefan Ram:
> r...@zedat.fu-berlin.de (Stefan Ram) writes:
>> Nehmen wir beispielsweise an, das Verzeichnis "a" würde
>> einen Eintrag "b" enthalten. Dann:
>
> Und da das wahrscheinlich durch "/bin/ls" realisiert wird,
> hat es eigentlich nichts mit der Shell zu tun.

OK, was wäre dann die Gruppe der Wahl?


Bernd

Bernd

unread,
Mar 5, 2023, 7:57:26 AM3/5/23
to
Am 04.03.23 um 14:04 schrieb Stefan Ram:
> Bernd <bna...@web.de> writes:
>> siehe Subjekt.
>
> Im USENET schreiben wir bevorzugt eine kurze Nominalphrase
> als Betreff und Fragen dann im Rumpf.
>
> Falls die Frage im Betreff gestellt werden sollte, sollte
> sie im Rumpf wiederholt werden.
Ja, hat Ulli auch schon geschrieben, sorry.

> "ls a" würde normalerweise den /Inhalt/ des Verzeichnisses
> "a" anzeigen. Um stattdessen das Verzeichnis "a" als Eintrag
> im aktuellen Verzeichniss zu sehen kann man "-d" verwenden.
>
> Nehmen wir beispielsweise an, das Verzeichnis "a" würde
> einen Eintrag "b" enthalten. Dann:
>
> |$ ls a
> |b
> |$ ls -d a
> |a
>
> .

Was macht das für einen Sinn? Wofür wird das verwendet? Das es einen
Ordner Namens 'a' gibt weiß ich ja, ich habe ihn ja hinter der Option -d
angegeben.

Mich würden (nur) die Ordner in diesen Ordnern interessieren.
(Also das was ein ls -p | grep /$ liefert.)

Bernd

Peter J. Holzer

unread,
Mar 5, 2023, 8:13:47 AM3/5/23
to
On 2023-03-05 12:57, Bernd <bna...@web.de> wrote:
> Am 04.03.23 um 17:02 schrieb Marcel Logen:
>> Probiere mal "ls -d *".
>
>
> Da ist das Ergebnis das gleiche wie bei ls ohne jede Option.

Nein:

% ls -a
./ ../
% touch f1 f2
% mkdir d1 d2
% mkdir d1/f3 d1/f4
% ls *
f1 f2

d1:
f3/ f4/

d2:
% ls -d *
d1/ d2/ f1 f2

Ohne -d wird bei Argumenten, die Directories sind, der Inhalt angezeigt.
Mit -d wird das Directory selbst angezeigt.

hp

Lutz Golke

unread,
Mar 5, 2023, 8:52:43 AM3/5/23
to
Am 05.03.23 um 13:57 schrieb Bernd:
> Mich würden (nur) die Ordner in diesen Ordnern interessieren.
> (Also das was ein ls -p | grep /$ liefert.)
Moin,

ls -1d */
oder
echo */

Gruß,
Lutz

Ulli Horlacher

unread,
Mar 5, 2023, 9:12:27 AM3/5/23
to
Bernd <bna...@web.de> wrote:

>>> drwxr-xr-x 3 bernd users 4096 4. Mär 12:37 ./
>>> drwxr-xr-x 29 bernd users 4096 21. Feb 13:14 ../
>>> -rw-r--r-- 1 bernd users 5373433 25. Mär 2022 allday.zip
>>> -rw-r--r-- 1 bernd users 998 27. Aug 2021 Prefer.txt
>>> drwxr-xr-x 2 bernd users 4096 4. Mär 12:37 test/
>>
>> Germanisches locale! *GRUSEL*
> Das ist ein Notebook. Da finde ich das schon ganz praktisch.

Unpraktisch.
Auf germanisch heisst das Runentafel.



>> Du hast wohl ls ver-aliased. So was macht man nicht!
> Ach so? Ich find's praktisch. (Wie gesagt Notebook, nix Server)

Praktisch, so wie Tisch zu Stuhl sagen?



>>> bernd@host:~/tmp> cd ..
>>> cd ..
>>> bernd@host:~> ls -d /tmp
>>> ls -d /tmp
>>> /tmp
>>> bernd@host:~> ls -d tmp
>>> ls -d tmp
>>> tmp
>>
>> Und? Wo ist das Problem?
>> Es werden wie in der Doku geschrieben, die Directories angezeigt und
>> nicht deren Inhalt.
> Naja, es wird genau das eine Verzeichnis angezeigt was ich eh schon
> angegeben habe. Ich hatte erwartet das die Ordner in diesen Ordnern
> (hier test) angezeigt werden.

Es sind keine Ordner, sondern Verzeichnisse. Das kommt davon wenn man
falsch lokalisiert. Und die Doku nicht liest oder aufgrund
Uebersetzungsfehler falsch versteht.


> bernd@host:~/tmp> ls
> allday.zip Prefer.txt test
>
> bernd@host:~/tmp> ls ../tmp/
> allday.zip Prefer.txt test
>
> bernd@host:~/tmp> ls -d ../tmp/
> ../tmp/

Ja. Und?

Bernd

unread,
Mar 5, 2023, 10:53:43 AM3/5/23
to
Am 05.03.23 um 14:52 schrieb Lutz Golke:
So einfach, danke!

Bernd

Bernd

unread,
Mar 5, 2023, 10:53:46 AM3/5/23
to
Am 05.03.23 um 14:13 schrieb Peter J. Holzer:
Mein Order test war leer. Daher sah ich da keinen Unterschied. Jetzt ist
es klar, danke.

Ich nahm an das bei -d NUR die Ordner angezeigt werden. Es werden aber
die Ordner der Ebene UND die Dateien der Ebene angezeigt.

Will man nur die Ordner der aktuellen Ebene sehen, hilft ls -d */
anstelle von ls -d * (siehe Lutz' Antwort)

Bernd

Helmut Waitzmann

unread,
Mar 5, 2023, 11:28:19 AM3/5/23
to
Bernd <bna...@web.de>:
> Am 04.03.23 um 14:07 schrieb Stefan Ram:
>>
>> Und da das wahrscheinlich durch "/bin/ls" realisiert wird,
>> hat es eigentlich nichts mit der Shell zu tun.
>
> OK, was wäre dann die Gruppe der Wahl?
>

«de.comp.os.unix.apps.misc»

Peter J. Holzer

unread,
Mar 5, 2023, 12:03:58 PM3/5/23
to
On 2023-03-05 15:53, Bernd <bna...@web.de> wrote:
> Am 05.03.23 um 14:13 schrieb Peter J. Holzer:
>> On 2023-03-05 12:57, Bernd <bna...@web.de> wrote:
>>> Am 04.03.23 um 17:02 schrieb Marcel Logen:
>>>> Probiere mal "ls -d *".
>>>
>>>
>>> Da ist das Ergebnis das gleiche wie bei ls ohne jede Option.
>>
>> Nein:
>>
>> % ls -a
>> ./ ../
>> % touch f1 f2
>> % mkdir d1 d2
>> % mkdir d1/f3 d1/f4
>> % ls *
>> f1 f2
>>
>> d1:
>> f3/ f4/
>>
>> d2:
>> % ls -d *
>> d1/ d2/ f1 f2
>>
>> Ohne -d wird bei Argumenten, die Directories sind, der Inhalt angezeigt.
>> Mit -d wird das Directory selbst angezeigt.
>
> Mein Order test war leer. Daher sah ich da keinen Unterschied. Jetzt ist
> es klar, danke.

Ein leerer Ordner ist nicht unbedingt ein guter Test für ls. Hier gibt
es nichts zu sehen, bitte gehen Sie weiter ...


> Ich nahm an das bei -d NUR die Ordner angezeigt werden. Es werden aber
> die Ordner der Ebene UND die Dateien der Ebene angezeigt.

Es ist wichtig, zu verstehen, dass * nicht von ls aufgelöst wird,
sondern von der Shell, Wenn ich oben

ls -d *

getippt habe, wurde in Wirklichkeit

ls -d d1 d2 f1 f2

aufgerufen. Es gibt hier also nicht "die Ebene", sondern ls wird mit
vier einzelnen Argumenten aufgerufen und nimmt an, dass ich von jedem
davon ein Listing habe möchte (denn sonst hätte ich das Argument ja wohl
nicht übergeben).


> Will man nur die Ordner der aktuellen Ebene sehen, hilft ls -d */
> anstelle von ls -d * (siehe Lutz' Antwort)

Auch hier wiederum löst die Shell den Wildcard-Ausdruck auf. Und weil
nur d1/ und d2/ existieren (aber nicht f1/ und f2/) wird somit
ls -d d1/ d2/ aufgerufen.

Die zsh (und ich glaube auch die bash) kann darüberhinaus auch noch
weitere Muster auflösen. Neben *(/) (alle Directorys) verwende ich z.B.
auch oft *(*) (alle Executables), und natürlich ** (rekursiv alle
Directorys).

hp

Peter J. Holzer

unread,
Mar 5, 2023, 12:20:44 PM3/5/23
to
On 2023-03-05 16:56, Stefan Ram <r...@zedat.fu-berlin.de> wrote:
> Wenn man Jokerzeichen verwendet, wird bei Verzeichnissen der
> Inhalt angezeigt:

Auch wenn man keine Wildcards verwendet, ist das der Fall.
Wildcards werden von der Shell aufgelöst, ls bekommt die nie zu sehen.

hp

Helmut Waitzmann

unread,
Mar 5, 2023, 12:28:50 PM3/5/23
to
Bernd <bna...@web.de>:
> Am 04.03.23 um 14:04 schrieb Stefan Ram:

>> Nehmen wir beispielsweise an, das Verzeichnis "a" würde
>> einen Eintrag "b" enthalten. Dann:
>>
>> |$ ls a
>> |b
>> |$ ls -d a
>> |a
>>
>
> Was macht das für einen Sinn? Wofür wird das verwendet? Das es
> einen Ordner Namens 'a' gibt weiß ich ja, ich habe ihn ja hinter
> der Option -d angegeben.

Fast.  Probiere mal, einen Namen (sei es den einer Datei oder den
eines Verzeichnisses) anzugeben, den es nicht gibt.  Dann zeigt dir
«ls» eine Ausgabe, die beispielsweise «printf» nicht ausgeben kann:

ls -d -- a
a

printf '%s\n' a
a

ls -d -- gibt_es_nicht
ls: Zugriff auf gibt_es_nicht nicht möglich: Datei oder
Verzeichnis nicht gefunden

printf '%s\n' gibt_es_nicht
gibt_es_nicht

Interessanter wird die von der Option «-d» gewählte Funktion aber
im Zusammenspiel mit weiteren Optionen, beispielsweise «-l», «-o»,
«-g», «-n», «-F» und zusätzlich auch noch «-c» und «-u».

> Mich würden (nur) die Ordner in diesen Ordnern interessieren.
>

Das kann man «ls» nicht direkt mitteilen.  Dazu braucht man
zusätzlich zu «ls» die Hilfe weiterer Programme, beispielsweise
des Shells oder des Programms «find».

«ls» und überhaupt die Unix‐ oder POSIX‐Welt benutzen nicht den
Begriff «Ordner» (engl. «folder»), sondern «Verzeichnis»
(engl. «directory»), und zwar aus gutem Grund:  Dateien und
Verzeichnisse können mehr als einen Namen haben, und diese Namen
können sogar in verschiedenen Verzeichnissen stehen.  (Häufig
begegnet einem in diesem Zusammenhang der Begriff «hard link».)

Zu diesen Fähigkeiten von Unix oder POSIX passt der Begriff
«Ordner» nicht:  Man kann kein Dokument in mehreren Ordnern
gleichzeitig abheften (sofern man es nicht fotokopiert[1]).  Man
kann aber ein Dokument in mehreren Verzeichnissen – denke an einen
Zettelkatalog, wie man sie früher in Bibliotheken hatte –
aufzählen.

[1] Mit den Fotokopien hat man dann das Problem, dass man
Änderungen, die man an dem Dokument vornehmen will, dann auf allen
Kopien ebenfalls nachführen muss, damit sie als Kopie das Original
getreu wiedergeben.

Beispielsweise konnte in der Bibliothek ein Buch über das
Bibliothekswesen vom Autor Max Mustermann sowohl im nach Autoren
sortierten Katalog (= Verzeichnis) unter «Max Mustermann» als auch
im Systematischen Katalog (= Verzeichnis) in der Rubrik
«Bibliothekswesen» verzeichnet sein.  In beiden Katalogen liegt
dann nicht das Buch selbst sondern nur ein Zettel, auf dem steht,
unter welcher Inventarnummer die Bibliothek das Buch führt.  (An
den Bücherregalen im Magazin stehen dann die Inventarnummern, damit
die Bibliotheksmitarbeitenden den Buchplatz im Regal schnell
finden.)

Von daher würde ich dir wärmstens empfehlen, dich in der Unix‐ oder
POSIX‐Welt vom Begriff «Ordner» zu verabschieden und den Begriff
«Verzeichnis» zu verwenden:  Der Begriff «Ordner» steht dem
Verständnis über die Fähigkeiten von Verzeichnissen im Weg.  Wer
ihn für Verzeichnisse verwendet, schießt sich selbst in den Fuß.

Helmut Waitzmann

unread,
Mar 5, 2023, 2:15:17 PM3/5/23
to
Bernd <bna...@web.de>:
> Am 05.03.23 um 14:13 schrieb Peter J. Holzer:
>> On 2023-03-05 12:57, Bernd <bna...@web.de> wrote:
>>> Am 04.03.23 um 17:02 schrieb Marcel Logen:
>>>> Probiere mal "ls -d *".
>>>
>>>
>>> Da ist das Ergebnis das gleiche wie bei ls ohne jede Option.
>>>
>>
>> Nein:
>>
>> % ls -a
>> ./ ../
>> % touch f1 f2
>> % mkdir d1 d2
>> % mkdir d1/f3 d1/f4
>> % ls *
>> f1 f2
>>
>> d1:
>> f3/ f4/
>>
>> d2:
>> % ls -d *
>> d1/ d2/ f1 f2
>>
>> Ohne -d wird bei Argumenten, die Directories sind, der Inhalt
>> angezeigt. Mit -d wird das Directory selbst angezeigt.
>
> Mein Order test war leer. Daher sah ich da keinen Unterschied.
> Jetzt ist es klar, danke.
>
> Ich nahm an das bei -d NUR die Ordner angezeigt werden. Es werden
> aber die Ordner der Ebene UND die Dateien der Ebene angezeigt.

Das ist in deinem Fall vielleicht zufällig richtig, aber
möglicherweise nicht aus dem Grund, aus dem du denkst, dass es so
sei.  Dazu muss man Folgendes wissen:


Die allgemeine Aufrufsyntax von «ls» sieht so aus:


ls null oder mehr Optionen -- null oder mehr Namen


Wenn man «ls» keine Namen (man sagt auch: eine leere Liste von
Namen) von anzuzeigenden Dateien oder Verzeichnissen angibt, fügt
«ls» der leeren Liste von Namen gewissermaßen den Namen «.» (einen
einzelnen Punkt) hinzu:  «ls» verhält sich im Folgenden so, als
hätte man es so

ls null oder mehr Optionen -- .

aufgerufen.  Das macht «ls» für die bequemere Verwendung.  Aber
man muss das für das Verständnis, wie «ls» funktioniert, im
Hinterkopf behalten.


Was fängt «ls» nun mit den Namen an?


Ich zäume jetzt das Pferd scheinbar von Schwanz auf und erkläre
erst, was «ls» tut, wenn es in der Liste der Optionen die Optionen
«-d» und «-U» findet:

Zunächst lässt sich «ls» für jeden Namen vom Betriebssystem
bestätigen, dass es eine Datei oder ein Verzeichnis dieses Namens
tatsächlich gibt.  Wenn es vom Betriebssystem erfährt, dass es
einen Namen nicht gibt, spuckt es eine Fehlermeldung über diesen
Namen aus:

ls -d -- gibt_es_nicht
ls: Zugriff auf gibt_es_nicht nicht möglich: Datei oder
Verzeichnis nicht gefunden

Was «ls» zu den Namen, die ihm das Betriebssystem bestätigt hat,
ausgibt, hängt von den weiteren Optionen ab.  Ohne weitere Optionen
(außer «-d») gibt «ls» nur den jeweiligen Namen aus.  (Das ist
nicht viel Information.)

In welcher Reihenfolge «ls» seine Ausgaben macht, hängt von der
Option «-U» ab:  Ohne die Option «-U» sortiert «ls» die Namen
zunächst, bevor es irgendwelche Ausgaben macht.  Die
Sortierkriterien hängen von weiteren «ls»‐Optionen ab (genaueres
weiß das Handbuch).

Gehaltvoller wird die Ausgabe, wenn man die Option «-l» angibt. 
Dann gibt «ls» außer dem Namen unter anderem auch aus, ob der Name
zu einem Verzeichnis, einer Datei oder einem anderen «Ding» (der
engl. Fachbegriff dazu heißt «inode») im Dateisystem gehört, wem
das vom Namen bezeichnete Inode gehört, zu welcher Gruppe es gehört,
die Zugriffsrechte und noch weitere Informationen (siehe das
Handbuch zu «ls»).


Wenn «ls» in der Liste der angegebenen Optionen die Option «-d»
nicht findet, weicht es im Fall, dass ein Name ein Verzeichnis
(oder ein symbolic link, das auf ein Verzeichnis zielt) bezeichnet,
vom eben beschriebenen Verhalten ab:  Es erfragt vom Betriebssystem
den Inhalt des Verzeichnisses, d.h. die in ihm liegenden Namen von
Inodes.  Dann gibt es zunächst den Namen des Verzeichnisses und
dahinter einen Doppelpunkt aus und in den folgenden Zeilen die
Namen der Inodes (und je nach Optionen weitere Informationen über
das Verzeichnis und über die Inodes) aus.

> Will man nur die Ordner der aktuellen Ebene sehen, hilft ls -d */
> anstelle von ls -d * (siehe Lutz' Antwort)

Ja, und zwar aus folgendem Grund:  «*/» in der Kommandozeile
veranlasst den Shell, zunächst mit Hilfe des Betriebssystem die
Namen von Verzeichnissen (und von symbolic links, die auf
Verzeichnisse zielen), die auf das Namensmuster «*» passen, zu
ermitteln.  Die Namen, die er erhält, sortiert er alphabetisch. 
Dann startet er das Programm «ls» statt mit dem Namen «*/» mit
dieser Namensliste, wobei jeder Name am Schluß einen «/» erhält.
(Was geschieht, wenn die Namensliste leer ist, hängt vom Shell und
davon, wie der Shell eingestellt ist, ab.  Siehe kürzlich den
News‐Beitrag mit dem Betreff «Heulen und Zaehneklappen beim
POSIX-Shell-Globbing».)

Beispiel:

In einem leeren Verzeichnis lasse ich die folgenden Kommandos
laufen:

touch -- Datei_B Datei_A
mkdir -- Verzeichnis_B Verzeichnis_A


Das Kommando


ls -d -U -- */

liefert dann die Ausgabe


Verzeichnis_A/
Verzeichnis_B/

Nach jedem Verzeichnisnamen folgt ein «/», weil «ls» vom Shell die
Verzeichnisnamen mit «/» hinten dran erhalten hat.


Das Kommando


ls -d -U -- *

liefert dann die Ausgabe


Datei_A
Datei_B
Verzeichnis_A
Verzeichnis_B

Hier stehen keine «/» hinter den Verzeichnisnamen, weil «ls» vom
Shell die Verzeichnisnamen (wie auch die Dateinamen) ohne «/»
hinten dran erhalten hat.

Stefan Wiens

unread,
Mar 8, 2023, 11:51:59 AM3/8/23
to
r...@zedat.fu-berlin.de (Stefan Ram) writes:
> de.comp.os.unix.apps.misc
>
> Aber ich würde das oben Zitierte heute nicht mehr schreiben.
> Inzwischen denke ich, daß Kommandos, die typischerweise
> in der Shell-Programmierung verwendet werden, durchaus hier
> behandelt werden können. Die Bereiche der beiden Newsgroups
> überlappen sich und sind eben nicht klar zu trennen.


Die Utilities aus

<https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html>

würde ich hier schon als Ontopic einstufen.

--
Stefan
0 new messages