Wie bringt man ls dazu, Verzeichnisse mit einem abschließenden Schrägstrich aufzulisten?

12

Meine Muschel ist bash. Wie kann ich die Ausgabe von erhalten ls, um Verzeichnisse mit einem abschließenden Schrägstrich anzuzeigen? Wenn ich lsin tcshgibt es die gewünschte Ausgabe. Wie kann ich dies erreichen, bashohne Argumente zu verwenden?

z.B.

bin/
lib/
src/
file1.txt
file2.txt
CJ7
quelle
7
Ihre Shell ist hier nicht relevant ... man lsdann scrollen Sie nach unten zu-p
don_crissti
ist es die -FFlagge? Ich benutze es nie, deshalb kann ich mich nicht erinnern ...
Jeff Schaller
1
Mit einem abschließenden Backslash gemäß Ihrem Titel oder mit einem abschließenden Schrägstrich (was sinnvoller ist) gemäß Ihrem Beispiel?
Gilles 'SO - hör auf böse zu sein'
@don_crissti Siehe meine Bearbeitung der Frage.
CJ7
@ CJ7 - was wird type lsausgegeben? Vielleicht ein Alias?
don_crissti

Antworten:

12

Die einfachste Lösung (wie bereits von @don_crissti in den Kommentaren angegeben) ist:

ls -p

Sie können einen ähnlichen Effekt erzielen mit:

ls -F

Aber das wird noch einige andere Indikatoren hinzufügen:

Fügen Sie jedem Dateinamen ein Zeichen hinzu, das den Dateityp angibt. Fügen Sie für reguläre Dateien, die ausführbar sind, an *. Die Dateitypindikatoren gelten /für Verzeichnisse, @für symbolische Links, |für FIFOs, =für Sockets, >für Türen und nicht für normale Dateien.


Natürlich können Sie die Zeichenfolge in der Befehlszeile mit einem Alias lsausführen lassen ls -p:

alias ls='ls -p'

Das ist zeitlich begrenzt und könnte mit gelöscht werden unalias ls.
Wahrscheinlich hat Ihr tcshAlias ​​einen aktiven Alias.

Was Sie tun können, indem Sie den Befehl in ~/.bashrcoder platzieren ~/.bash_aliases.


quelle
Das letzte bisschen erregte meine Aufmerksamkeit. Ich habe noch nie etwas gesehen oder gehört ~/.bash_aliases. nur ~/.bash_profileund / oder ~.bashrc. Ist es richtig?
Stimmen
1
@ tjt263 Es ist üblich, alle Aliase in einer speziellen Datei zu platzieren, die von bashrc stammt . Der Inhalt kann je nach Ihren Anforderungen variieren .
Um Farben zu behalten:alias ls='ls --color=auto -p'
mkczyk
2

Sie können -F verwenden, z

$ /bin/ls -F
-/                                 diesel_folks                 grub                     presidents             user_mailer/
0/                                 dmStaffing/                  HJJJH/                   prime_scenarios   
...
# I'm using /bin/ls to make sure I run my system ls 
# (I actually have it aliased to add options automatically normally)
#
# Just read about your no argument requirement
# So you too could alias it, i.e.

alias ls='ls -F'

# Put it in your `.bashrc` or `.bash_aliases` file
Michael Durrant
quelle
Wissen Sie, warum tcshich die gewünschte Ausgabe bekomme und bashnicht?
CJ7
1
@ CJ7 Da tcsh und bash unterschiedliche Konfigurationsdateien verwenden (mit unterschiedlicher Syntax). Sie haben vermutlich bereits einen ähnlichen Alias ​​in Ihrem .cshrc.
Gilles 'SO - hör auf böse zu sein'
Ich habe versucht, eine .bashrcDatei in meinem Home-Verzeichnis zu erstellen, aber es hat nicht funktioniert
CJ7
@ CJ7, hast du deine Shell nach dieser Änderung neu gestartet?
Jochem Schulenklopper
0

Entweder

   ls --classify

Oder:

   ls --indicator-style=slash

Erläuterung

   -F, --classify
          append indicator (one of */=>@|) to entries

   -p, --indicator-style=slash
          append / indicator to directories

Die anderen Antworten decken dies mehr oder weniger ab, aber ich bevorzuge lange Optionen im GNU-Stil gegenüber kurzen Optionen im BSD-Stil in Stapelüberlaufantworten, da sie selbsterklärender und lernbarer / "einprägsam" / "verinnerlichbar" sind.

Sridhar Sarnobat
quelle