• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Kann mir jemand den ls-Befehl erklären?

amzd

Newbie
Hallo,
Ich möchte mir z.B. den Inhalt des aktuellen Verzeichnisses anschauen, wobei die Verzeichnisse vor den Dateien gelistet werden sollen und danach ALLE Dateien, auch die, die mit einem Punkt beginnen.

ls –al //Zeigt alles im aktuellen Verzeichnis in alphabetischer Reihenfolge an, immerhin

ls –ald // oh Wunder, es kommt nur noch ein . ??

ls –ald ./* // oh Wunder, trotzdem Schalter a gesetzt ist, wird alles, was mit einem Punkt beginnt unterdrückt; und überhaupt: warum funktioniert –al auf das aktuelle Verzeichnis und –ald nur, wenn ich ./* angebe ??

ls –ald ./.* // zeigt jetzt nur noch das aus dem aktuellen Verzeichnis an, was mit einem Punkt beginnt, nichts anderes mehr

-ald müsste auch alles, was mit einem Punkt beginnt anzeigen. Das Programm hat doch eine Macke, oder?
Mein Ziel, erst Verzeichnisse und dann ALLE Dateien im aktuellen Verzeichnis anzuzeigen ist wohl kaum realisierbar, oder?

Danke für Hinweise.
Andreas
 

Jägerschlürfer

Moderator
Teammitglied
gib doch in einem Terminal einfach mal
Code:
man ls
ein. Dann sollten du ne Auflistung bekommen wo du erfährst, was man mit dem Befehl so alles machen kann.

Alternativ kannst du auch hier nachschauen, falls du im Moment nicht an einer Linuxkiste sitzt. Wie aktuell die Daten sind kann ich aber nicht sagen.
http://www.linuxmanpages.com/
 

josef-wien

Ultimate Guru
amzd schrieb:
Mein Ziel, erst Verzeichnisse und dann ALLE Dateien im aktuellen Verzeichnis anzuzeigen ist wohl kaum realisierbar, oder?
Kennst Du die zugehörige "manpage"? Dort findest du z. B. den Parameter "--group-directories-first". Falls Dir das zu lang ist, kannst Du für Deinen Befehl einen "Alias" definieren, z. B. "alias lss='ls -al --group-directories-first'".

Die Besonderheiten des Parameters "-d" muß Dir jemand anderer erklären.

Jägerschlürfer schrieb:
Wie aktuell die Daten sind kann ich aber nicht sagen.
LS
Section: User Commands (1)
Updated: March 2004
 

abgdf

Guru
Äh, mit ls, Version 5.3.0, habe ich kein "--group-directories-first".
Wenn der OP klarkommt, ist es gut, sonst könnte ich ihm noch was mit "find" oder in Perl basteln.

Gruß
 

Rainer Juhser

Moderator
Teammitglied
Bei der 11.1:
Code:
> ls --version
ls (GNU coreutils) 6.12
Bei dieser Version gibt es den Parameter "--group-directories-first".
 

abgdf

Guru
Hackaround:
Code:
find -maxdepth 1 -type d -printf "%f\n"; find -maxdepth 1 -type f -printf "%f\n"
Gruß
 
OP
A

amzd

Newbie
Hallo,
vielen Dank für die Hinweise.
Zwar hatte ich in die manpage geschaut, war aber von dem ganzen Wust dann so genervt, dass ich das zu flüchtig durchgeschaut hatte.
Die beiden find-Befehle sind zu kompliziert und unterdrücken zudem alles, was man an Komfort mit ls so hat.

ls -al --group-directories-first // funktioniert und das war was ich gesucht habe.
Danke Josef-Wien für das Erwähnen dieses Schalters. Werde deinen Vorschlag beherzigen und mir (auf jedem Linux wo ich arbeite) als eines der ersten Dinge einen alias dafür erzeugen.
Einfach nur sagen, "siehe man-page" ist nicht wirklich die Hilfe.

Dennoch hat das Programm ls, was den Schalter -d angeht eine Macke, denn
1) Warum funktioniert der auf einmal nicht mehr standardmäßig für das aktuelle Verzeichnis?
2) Warum hebt er die Funktionaliltät von -a auf?
Jedenfalls steht zu diesem merkwürdigen Verhalten nichts in der manpage.

Nun, ich bins zufrieden.

Schönen Gruß
Andreas
 

abgdf

Guru
"ls" ist tatsächlich etwas beschränkt.
Schwierigkeiten bereitet damit z.B., nur die Verzeichnisse anzeigen zu lassen. Eigentlich merkwürdig.
"ls" ist also im Prinzip um zu sehen, was los ist; für komplexere Ansichten gibt es dann "find", dessen man-Page allerdings noch länger und dessen Handhabung noch umständlicher ist.

Gruß
 
A

Anonymous

Gast
abgdf schrieb:
Schwierigkeiten bereitet damit z.B., nur die Verzeichnisse anzeigen zu lassen. Eigentlich merkwürdig.
Achwo ;) ;) ;)
Code:
ls -al | grep ^d 
ls -p  | grep /$
ls -ap | grep /$
robi
 
Oben