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 1in ls -ldasselbe 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 -sum 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 -sGibt Größen zurück, die größer als ls -lund 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?