Das Erstellen einer 1-GB-Datei ändert nichts am freien Speicherplatz auf der Festplatte

Das Erstellen einer 1-GB-Datei ändert nichts am freien Speicherplatz auf der Festplatte

Ich versuche, basierend auf dem verbleibenden Festplattenspeicher eine leere Datei zu erstellen. Das Problem besteht darin, dass beim Erstellen einer 1 GB großen Datei der Befehl df anzeigt, dass der verbleibende Speicherplatz nur 12 KB kleiner ist als vor der Erstellung der Datei.

someone@here:/tmp/delete# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             36827144   5031592  29924788  15% /
tmpfs                   508508         0    508508   0% /lib/init/rw
varrun                  508508       156    508352   1% /var/run
varlock                 508508         4    508504   1% /var/lock
udev                    508508       140    508368   1% /dev
tmpfs                   508508      1108    507400   1% /dev/shm

someone@here:/tmp/delete# dd if=/dev/zero of=tempFile bs=1000 count=1 seek=1000000
1+0 records in
1+0 records out
1000 bytes (1.0 kB) copied, 0.000438915 s, 2.3 MB/s

someone@here:/tmp/delete# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             36827144   5031604  29924776  15% /
tmpfs                   508508         0    508508   0% /lib/init/rw
varrun                  508508       156    508352   1% /var/run
varlock                 508508         4    508504   1% /var/lock
udev                    508508       140    508368   1% /dev
tmpfs                   508508      1108    507400   1% /dev/shm

Weiß jemand, warum der df-Befehl nicht das volle 1 GB berücksichtigt? Danke.

Antwort1

Sie haben es auf einem Dateisystem erstellt, das unterstütztSparse-Dateienes belegt also tatsächlich nur 1000 Bytes, genau wie die Ausgabe von ddbesagt. Lassen Sie es weg seekund verwenden Sie ein richtiges count.

Antwort2

Ausinfo coreutils du(Hervorhebung von mir):

'--apparent-size'
Druckt scheinbare Größen, statt Festplattennutzung. Die scheinbare Größe einer Datei ist die Anzahl der Bytes, die von 'wc -c' bei regulären Dateien oder allgemeiner von 'ls -l --block-size=1' oder 'stat --format=%s' gemeldet wird. Beispielsweise hätte eine Datei, die das Wort „zoo“ ohne Zeilenumbruch enthält, natürlich eine scheinbare Größe von 3. Eine so kleine Datei kann zwischen 0 und 16 KiB oder mehr Festplattenspeicher benötigen, je nach Typ und Konfiguration des Dateisystems, auf dem sich die Datei befindet. EinespärlichDatei erstellt mit dieser Befehl:

dd bs=1 suche=2GiB wenn=/dev/null von=groß

hat einescheinbare Größe von 2 GiB, doch auf den meisten modernen Systemenbenötigt fast keinen Speicherplatz.

verwandte Informationen