GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erstelle ich eine Datei mit einer bestimmten Größe in Linux?

Verwenden Sie diesen Befehl:

dd if=$INPUT-FILE of=$OUTPUT-FILE bs=$BLOCK-SIZE count=$NUM-BLOCKS

Um eine große (leere) Datei zu erstellen, setzen Sie $INPUT-FILE=/dev/zero .
Die Gesamtgröße der Datei beträgt $BLOCK-SIZE * $NUM-BLOCKS .
Die neu erstellte Datei ist $OUTPUT-FILE .


Bitte, modern ist einfacher und schneller. Unter Linux (wählen Sie eine aus)

truncate -s 10G foo
fallocate -l 5G bar

Es braucht angegeben werden, dass truncate auf einem Dateisystem, das Sparse-Dateien unterstützt, wird eine Sparse-Datei und fallocate erstellt wird nicht. Eine Sparse-Datei ist eine Datei, bei der die Zuordnungseinheiten, aus denen die Datei besteht, eigentlich nicht vorhanden sind bis zur Verwendung zugeteilt. Die Metadaten für die Datei werden nehmen jedoch beträchtlichen Speicherplatz ein, aber wahrscheinlich nicht annähernd die tatsächliche Größe der Datei. Sie sollten Ressourcen zu Sparse-Dateien konsultieren, um weitere Informationen zu erhalten, da dieser Dateityp Vor- und Nachteile hat. Einer Datei ohne Sparse werden ihre Blöcke (Zuordnungseinheiten) im Voraus zugewiesen, was bedeutet, dass der Speicherplatz reserviert ist, soweit das Dateisystem ihn sieht. Auch fallocate noch truncate setzt den Inhalt der Datei nicht auf einen bestimmten Wert wie dd , stattdessen den Inhalt einer mit fallocate zugewiesenen Datei oder truncate kann irgendein Müllwert sein, der während der Erstellung in den zugewiesenen Einheiten vorhanden war, und dieses Verhalten kann erwünscht sein oder nicht. Die dd ist am langsamsten, da es tatsächlich den Wert oder Datenblock in den gesamten Dateistrom schreibt, wie mit seinen Befehlszeilenoptionen angegeben.

Dieses Verhalten kann möglicherweise unterschiedlich sein – abhängig vom verwendeten Dateisystem und der Konformität dieses Dateisystems mit einem Standard oder einer Spezifikation. Daher wird empfohlen, dass angemessene Nachforschungen angestellt werden, um sicherzustellen, dass die geeignete Methode verwendet wird.


Für kleine Dateien:

dd if=/dev/zero of=upload_test bs=file_size count=1

Wobei file_size ist die Größe Ihrer Testdatei in Bytes.

Für große Dateien:

dd if=/dev/zero of=upload_test bs=1M count=size_in_megabytes

Nur um Toms Beitrag nachzugehen, können Sie dd auch verwenden, um Sparse-Dateien zu erstellen:

dd if=/dev/zero of=the_file bs=1 count=0 seek=12345

Dadurch wird auf den meisten Unix-Systemen eine Datei mit einem "Loch" darin erstellt - die Daten werden nicht wirklich auf die Festplatte geschrieben oder nehmen Speicherplatz in Anspruch, bis etwas anderes als Null hineingeschrieben wird.


Linux
  1. So erstellen Sie eine passwortgeschützte ZIP-Datei unter Linux

  2. So erstellen Sie Dateien einer bestimmten Größe unter Linux

  3. So erstellen Sie eine Auslagerungsdatei unter Linux

  4. So erstellen Sie ein ZFS-Dateisystem mit Dateikomprimierung unter Linux

  5. Wie kann ich eine Datei mit einer bestimmten Größe von einer Befehlszeile aus erstellen?

So finden Sie installierte Anwendungen mit installierter Größe in Linux

So erstellen Sie Verzeichnisse aus einer Textdatei unter Linux

So erstellen Sie eine Volumengruppe in Linux mit LVM

So erstellen Sie eine große 1-GB- oder 10-GB-Datei unter Linux

So erstellen und verwenden Sie eine Auslagerungsdatei unter Linux

Wie bekomme ich die Datei-/Ordnergröße mit SSH unter Linux?