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 dd
besagt. Lassen Sie es weg seek
und 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.