So erstellen Sie eine Datei mit einer BELIEBIGEN Größe in Linux?
Las ich diese Frage:
So erstellen Sie eine Datei mit einer bestimmten Größe in Linux?
Aber ich habe die Antwort auf meine Frage.
Ich möchte eine Datei erstellen der 372.07 MB,
Ich habe versucht, die folgenden Befehle in Ubuntu 10.08:
dd if=/dev/zero of=output.dat bs=390143672 count=1
dd: memory exhausted
390143672=372.07*1024*1024
Gibt es andere Methoden?
Vielen Dank!
Bearbeiten:
Wie zu sehen Größe einer Datei auf der Linux-Kommandozeile mit dezimal. Ich meine, der Befehl Linie ls -hl
sagt nur: '373M", aber die Datei tatsächlich "372.07 M".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sparse-Datei
Dies hat den zusätzlichen Vorteil, erstellen der Datei spärlich, wenn das zugrunde liegende Dateisystem unterstützt wird. Dies bedeutet, kein Raum verschenkt wird, wenn einige der Seiten (_blocks) jemals geschrieben und die Datei Schöpfung ist extrem schnell.
Nicht-sparse - (Opak) Datei:
Könnten Sie
fallocate
(in Debian vorhanden aufgrundutil-linux
) statt:Diese hat noch den Vorteil, nicht benötigen, um eigentlich schreiben Sie die Blöcke, so es ist ziemlich viel so schnell wie das erstellen der Datei mit geringer Dichte, aber es ist nicht mit. Beste Aus Beiden Welten.
-rw-r--r-- 1 root root 199753560064 Nov 1 19:19 output.dat
undls -hl output.dat
gibt-rw-r--r-- 1 root root 187G Nov 1 19:19 output.dat
187G???? Verrückt!bs=1
, sorryfallocate
jetzt (getestet auf debian)fallocate: output.dat: fallocate failed: Operation not supported
auf meinem Ubuntu 10.08. Ich bin Googeln für diesen Fehler.Ändern Sie Ihre Parameter:
sonst
dd
versucht, eine 370MB Puffer im Speicher.Wenn Sie wollen, um es effizienter zu gestalten, schreiben die 372MB Teil zuerst mit groß-ish-Blöcke (z.B. 1M), dann schreiben Sie das Heckteil mit 1-byte-Blöcken, die durch die Nutzung der
seek
option zu gehen, um das Ende der Datei first.Ex:
seek
hinzufügen 0,07 M zu einer Datei?ls -hl
sagt nur: '373M", aber die Datei tatsächlich "372.07 M".ls -l
zu sehen, die tatsächliche Dateigröße.dd if=/dev/zero bs=1 count=390143672 | dd of=output.dat bs=1M
statt. Viel einfachercount=42
ist, nicht-offensichtliche und /hard/ generalisiert in shell-scripting.abschneiden, verkleinern oder erweitern Sie die Größe einer Datei auf die angegebene Größe
Folgende Beispiel kürzt putty.log von 298 bytes 235 bytes.
Swap-count und bs. bs bytes im Speicher, so kann es nicht sein, dass große.