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
?
ls -s
?