Ich möchte eine Datei mit dem Namen erzeugen example.file
. ich könnte benutzen
touch example.file
Ich möchte aber, dass die Datei genau 24 MB groß ist. Ich habe die Manpage von touch bereits überprüft, aber es gibt keinen solchen Parameter. Gibt es eine einfache Möglichkeit, Dateien einer bestimmten Größe zu generieren?
bash
command-line
files
R_User
quelle
quelle
Antworten:
Sie können dd verwenden:
oder
oder auf dem Mac
quelle
bs=1G count=1
dd if=/dev/zero of=output.dat bs=24m count=1
m
.Unter nicht eingebettetem Linux oder Cygwin (oder jedem System mit GNU-Coreutils) und FreeBSD:
Dadurch wird eine Datei mit null Bytes erstellt. Wenn die Datei bereits vorhanden und kleiner ist, wird sie mit null Byte auf die angeforderte Größe erweitert. Wenn die Datei bereits vorhanden und größer ist, wird sie auf die angeforderte Größe gekürzt.
Die Null-Bytes belegen keinen Speicherplatz, die Datei ist eine Sparse-Datei .
Erstellt auf vielen Systemen
head -c 24m </dev/zero >example.file
eine Nicht-Sparse-Datei mit Null-Bytes. Wenn auf Ihrem Systemhead
keine-c
Option vorhanden ist (dies ist üblich, jedoch nicht in POSIX), können Sie diese verwendendd bs=1024k count=24 </dev/zero >example.file
(dies ist POSIX-kompatibel).quelle
Wenn Ihnen der Inhalt der Datei egal ist, ist dies viel schneller als die Verwendung von
dd
:Die Verwendung
dd
einer 24-MB-Datei nimmt auf einem modernen System natürlich keine Zeit in Anspruch, größere Dateien können jedoch merklich langsam sein.quelle
Sie können dd verwenden:
Oder für den Fall, dass Sie Solaris verwenden
quelle
-n
, um eine spärliche Datei zu erstellenquelle
fallocate
könnte eine gute antwort sein, aber warum all die anderen leitungen? Schneiden Sie Ihre Antwort so ab, dass sie genau das tut, worum Sie gebeten wurden, und nicht mehr.fallocate -l 10M somefile.dump