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

Wie kann ich Dateien mit einer Größenbeschränkung komprimieren?

Lösung 1:

Sie können das "geteilte Archiv verwenden " Funktionalität von "zip " selbst mit "--split-size " Option.

Von der „zip“-Manpage („man zip "):

(...)

Eine Verwendung von geteilten Archiven ist das Speichern eines großen Archivs bei mehrfachem Entfernen.
fähige Medien. Bei einem Split-Archiv mit 20 Split-Dateien sind die Dateien typisch
isch benannt (ersetzen Sie ARCHIV durch den Namen Ihres Archivs) AR‐
SCHNITTLAUCH.z01, ARCHIV.z02, ..., ARCHIV.z19, ARCHIV.zip. Notiere dass der
letzte Datei ist die .zip-Datei.

(...)

-s Aufteilungsgröße
--split-size splitsize

Teilungsgröße ist eine Zahl, optional gefolgt von einem Multiplikator.
Derzeit muss die Zahl eine Ganzzahl sein. Der Multiplikator kann
derzeit einer von k (Kilobyte), m (Megabyte), g (Gigabyte),
oder t (Terabyte). Da 64k die minimale Split-Größe ist, Zahlen
ohne Multiplikatoren standardmäßig auf Megabyte. Zum Beispiel um zu erstellen
aß ein geteiltes Archiv namens foo mit dem Inhalt der Leiste
Verzeichnis mit Aufteilungen von 670 MB, die zum Brennen nützlich sein könnten
auf CDs der Befehl:

                zip -s 670m -r foo bar

verwendet werden könnten.

Also, um ein geteiltes ZIP-Archiv zu erstellen , könnten Sie Folgendes tun (die Datei „-r " ist der "rekursive" Schalter, um Unterverzeichnisse des Verzeichnisses einzuschließen):

$ zip -r -s 10m archive.zip directory/

Um die Datei zu entpacken , die "zip " Manpage erklärt, dass Sie den Schalter "-s 0`" verwenden sollten:

(...)

 zip -s 0 split.zip --out unsplit.zip

konvertiert ein geteiltes Archiv in ein Einzeldateiarchiv.

(...)

Sie trennen" also zuerst die ZIP-Datei mit dem "-s 0" Schalter:

$ zip -s 0 archive.zip --out unsplit.zip

... und dann entpacken Sie die ungeteilte Datei:

$ unzip unsplit.zip

Lösung 2:

tar -czvf - /path/to/files | split -b 10M - archive.tar.gz

Gibt Ihnen eine Reihe von Dateien:

archive.tar.gzaa

archive.tar.gzab

...

Was dann entpackt werden kann mit:

cat archive.tar.* | tar -xzvf -

Lösung 3:

So habe ich es für eine 5-GB-Datei gemacht (aufgeteilt in 1 GB vs. 10 MB, wie OP gefragt hat) ...

Beispiel: So teilen Sie eine 5-GB-Datei in 1-GB-Dateien zum Kopieren auf einen FAT32 USB (Dateiname "FIVE_GB_FILE.ISO")

Schritt 1: zip die Datei (keine Komprimierung, gleiches Verzeichnis wie Quelle)

zip -0 FIVE_GB_FILE.ZIP FIVE_GB_FILE.ISO

Schritt 2 :Aufteilen der 5-GB-Zip-Datei in 1-GB-Zip-Dateien

zip -s 1000m SPLIT_5GB_FILES FIVE_GB_FILE.ZIP

Voila ... Sie sollten die folgenden 1-GB-Dateien haben (UND das Original UND die ZIP-Datei aus Schritt 1)

SPLIT_5GB_FILES.zip
SPLIT_5GB_FILES.Z01
SPLIT_5GB_FILES.Z02
SPLIT_5GB_FILES.Z03
SPLIT_5GB_FILES.Z04

Linux
  1. So komprimieren Sie Dateien und Verzeichnisse unter Linux (mit Beispielen)

  2. So entpacken Sie Dateien unter Linux (mit Beispielen)

  3. So archivieren und komprimieren Sie Dateien unter Linux

  4. So komprimieren Sie mehrere Dateien unter Linux

  5. Arbeiten Sie mit ZIP-Dateien unter Linux

So entpacken Sie Dateien unter Linux

So komprimieren Sie Dateien und Verzeichnisse unter Linux

So entpacken Sie Zip-Dateien unter Linux

So laden Sie Dateien mit FileZilla hoch

So komprimieren Sie eine Datei unter Linux

Zip-Dateien mit höherer Komprimierung komprimieren