Ich weiß, dass ich ls -lat
damit herausfinden kann, wie viele Bytes eine Datei enthält, und dann mit 8 multiplizieren kann, um herauszufinden, wie viele Bits es gibt. Aber ist das nur in einer Kommandozeile möglich?
bash
shell
command-line
filesystems
files
Felipe
quelle
quelle
Antworten:
Mit GNU
du
:quelle
bc
-awk
kann selbstdu -b FILE | awk '{print $1 * 8}
wc -c < FILE
für ein tragbares Äquivalent (für nicht reguläre Dateien hat es den Nebeneffekt, sie zu lesen)Eine Shell + GNU Coreutils-Lösung:
Die
-c%s
Option,stat
nur die Dateigröße in Bytes zurückzugeben, macht zusätzliche Textverarbeitung überflüssig. Diese Syntax wird von GNU-Coreutils unterstützt und sollte daher unter den meisten Linux-Distributionen funktionieren.Wenn unter Linux zsh mit dem optionalen zsh / stat-Modul ausgeführt wird, muss ausnahmsweise ein Pfad angegeben werden, um die GNU-Coreutils abzurufen:
quelle
Mit GNU
find
(stat
um Jahrzehnte vor GNU ):Relativ tragbar:
quelle
Dies ist in einer Zeile möglich, da Sie mehrere Befehle in eine Zeile einfügen können, z. B. durch Pipes oder Befehlsersetzungen verbunden:
(Danke @frostschutz für das Update).
quelle
ZSize: 5
zum Beispiel aufgerufen wirdstat -c %s FILE
, die Größe direkt anstelle der zu druckensed
?Einzelne Datei:
Mehrere Dateien:
Dieser funktioniert auch für eine einzelne Datei. Es ist jedoch nicht vollständig kugelsicher, siehe Stephanes Kommentar.
Dies sind POSIX-Standard-kompatible Befehle.
quelle
a b
Datei als anzeigena b
(Sequenzen von Leerzeichen, die in ein einzelnes Leerzeichen konvertiert wurden, nachfolgende Leerzeichen entfernt).NR == 1