Ich kann nicht herausfinden, warum ich die folgenden Ergebnisse erhalte:
ls -l
sagt mir, dass die Größe einer bestimmten Datei (HISTORY) "581944" ist:
$ ls -l HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
ls -s
sagt, es ist "572":
$ ls -s HISTORY
572 HISTORY
Ich muss natürlich dafür sorgen, dass die Werte eine vergleichbare Skala verwenden. Als erstes bestätige ich, dass ich mit --block-size 1
in ls -l
dasselbe Ergebnis wie zuvor erhalte:
$ ls -l --block-size 1 HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
Dann mache ich dasselbe, ls -s
um einen Wert in der gleichen Skala zu erhalten:
$ ls -s --block-size 1 HISTORY
585728 HISTORY
Unterschiedliche Ergebnisse! 581944 ≠ 585728 .
Ich habe versucht, vergleichbare Werte in umgekehrter Reihenfolge zu generieren -k
, aber ich erhalte:
$ ls -lk HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 569 Feb 22 10:59 HISTORY
$ ls -sk HISTORY
572 HISTORY
Wieder andere Ergebnisse, 569 ≠ 572 .
Ich habe versucht, --si anzugeben, um sicherzustellen, dass beide Optionen den gleichen Maßstab verwenden, ohne Erfolg:
$ ls -lk --si HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 582k Feb 22 10:59 HISTORY
$ ls -sk --si HISTORY
586k HISTORY
... wieder andere Werte: 582k ≠ 586k .
Ich habe versucht, im Internet zu suchen, aber das einzige, was mir relevant erschien, war Folgendes :
Einige Dateien weisen "Löcher" auf, sodass die mit
ls -s
(...) angegebene Verwendung geringer ist als die mit angegebene Dateigrößels -l
. "
(Beachten Sie, dass in meinen Ergebnissen das Gegenteil passiert: ls -s
Gibt Größen zurück, die größer als ls -l
und nicht kleiner sind.)
Inzwischen sagt diese Seite das
Es gibt keine elegante Möglichkeit, Unix-Dateilöcher zu erkennen.
Wie kann ich mit dieser Diskrepanz umgehen? Welcher dieser Werte kann als richtig angesehen werden? Könnte dies möglicherweise ein Fehler sein ls
?
quelle
ls -s
?sudo tune2fs -l /dev/sdaX|grep Inode
oderdf -i
für alle Partitionen.ls -lsh ~/Downloads/torrents
gibt mir zum Beispiel92K -rw-r--r-- 1 waldir waldir 350M Sep 15 2012 video.avi.part
. Das heißt, die 92K, durch die Option es zurückgegeben, der eigentliche Raum ist die Datei nimmt, Dateisystem-weise, und 350M, die von der Option -l zurückgegeben, ist die volle Größe der Datei würde , wenn es vollständig heruntergeladen wurde (dh wenn alle Bytes von Anfang bis Ende nicht Null waren). Siehe lists.freebsd.org/pipermail/freebsd-questions/2012-June/…ls -s
gibt die zugewiesene Größe der Datei an, immer ein Vielfaches der Zuordnungseinheit.ls -l
gibt die tatsächliche Größe an. Eine einfache Möglichkeit zum Testen:quelle