Das Beste, was ich über Google finden konnte / man ls
war:
ls -l | grep -v '^total'
Fehlt mir etwas in den Flaggen ls
?
Warum wird die Gesamtgröße in KB angegeben, unabhängig vom Flag -h? Kratz das, scheint es zu tun, nicht sicher, was ich damals sah.
ls -l | tail -n+2
, im Übrigen habe ich keine Antwort.lsl
. Nur 3 buchstaben;) oh und ls -lh zeigt mir größen im 1,2 kt stil.Antworten:
Beim Betrachten des Quellcodes von habe
coreutils
ich herausgefunden, dasstotal
dieser bei Verwendung der-l
Option für Verzeichnisse immer angezeigt wird .Wenn Sie die
-d
Option zum Auflisten von Einträgen anstelle von Verzeichnisinhalten verwenden, werden diese ausgeblendettotal
. Wenn Sie dies jedoch ohne Argumente (oder in einem Verzeichnis) ausführen, wird nur das Verzeichnis und nicht der Inhalt angezeigt. Daher benötigen Sie Platzhalter.*
stimmt mit allen Dateien.*
überein und stimmt auch mit versteckten Dateien überein (was der-a
Option entspricht):Die
-h
Option funktioniert bei mir. 1118360 Bytes werden als 1,1 MB angezeigt. Dateien, die kleiner als 1024 sind, werden in Bytes angezeigt.quelle
ls
Handbuchseite zum Buchstaben nehmen oder dies berücksichtigen:ls /
kann als " Auflisten des Eintrags,/
wenn es sich um eine Datei handelt, oder als Verzeichnisinhalt,/
wenn es sich um ein Verzeichnis handelt" interpretiert werden . Mit-d
wird die letzte Bedingung entfernt und der Eintrag anstelle des Verzeichnisinhalts gedruckt. Dies gilt unabhängig davon, ob es sich bei einem Pfad um eine Datei oder ein Verzeichnis handelt.Das Verwenden von Platzhaltern, um zu vermeiden, dass
ls
die Verzeichnisliste ausgeführt wird, ist nicht optimal, da Sie dadurch keinels
Optionen wie verwenden können--almost-all
.Wie von Enzotib vorgeschlagen , besteht die einfachste Möglichkeit, es zu entfernen, darin, es durchzuleiten , um
tail
die erste Zeile abzuschneiden. Ermitteltls
jedoch, dass es sich bei seiner Ausgabe eher um eine Pipe als um eine interaktive handelt, und ändert die Standardeinstellungen auf unerwünschte Weise. Um es robust zu machen, sollten Sie daher auch einige Optionen hinzufügen:--color=always
: Zeige weiterhin Farben--hide-control-chars
: Drucken Sie?
Dateinamen anstelle von Steuerzeichen ein, die die Konsolenausgabe durcheinander bringen könntenIch habe ein Skript
~/bin/l
(Sie können auch einen Bash-Alias verwenden~/.bash_aliases
):Sie können auch andere
ls
Optionen hinzufügen , die Sie standardmäßig möchten, z--group-directories-first --time-style='+%FT%T.%N%:::z' --indicator-style=slash
.quelle
ls -l *
Gibt Ihnen "normal benannte" Ordnerinhalte ohne das
total
. Das könnte für Ihre Bedürfnisse geeignet sein. Leider werden Ihnen diedot
vorangestellten Dateien nicht angezeigt. Wenn Sie verwendenls -l * .*
, werden Sie ein Chaos bekommen, da Linux den Baum hinauf navigiert.Beachten Sie, dass das Punktpräfix den Ordner oder mit einem Platzhalter den obigen Ordner bedeuten kann, sodass Sie keine regulären Dateien mit dem Punktpräfix auswählen können. Dies scheint eine unglückliche Designentscheidung gewesen zu sein.
quelle
Hinweis:
Folgendes funktioniert nicht, wenn Sie eine Datei mit dem Namen "total ...." haben.
quelle