Wie zerlege ich eine große + 4 GB- Datei in kleinere Dateien mit jeweils ca. 500 MB .
Und wie kann ich wieder zusammenbauen sie wieder die ursprüngliche Datei zu bekommen?
Wie zerlege ich eine große + 4 GB- Datei in kleinere Dateien mit jeweils ca. 500 MB .
Und wie kann ich wieder zusammenbauen sie wieder die ursprüngliche Datei zu bekommen?
Antworten:
Sie können split und cat verwenden .
Zum Beispiel so etwas wie
$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.
(wobei der Eingabedateiname foo
und das letzte Argument das Ausgabepräfix ist). Dies erstellt Dateien wie foo.000 foo.001
...
Der gleiche Befehl mit kurzen Optionen:
$ split -b 100k -d -a 3 foo foo
Sie können auch "--line-bytes" angeben, wenn Sie möchten, dass die Zeilengrenzen anstelle der exakten Anzahl von Bytes geteilt werden.
Zum erneuten Zusammensetzen der generierten Teile können Sie zB verwenden:
$ cat foo.* > foo_2
(Unter der Annahme, dass die Shell die Ergebnisse des Shell-Globbing sortiert und die Anzahl der Teile die systemabhängige Grenze der Argumente nicht überschreitet.)
Sie können das Ergebnis vergleichen über:
$ cmp foo foo_2
$ echo $?
(die 0 ausgeben sollte)
Alternativ können Sie eine Kombination aus find / sort / xargs verwenden, um die Teile wieder zusammenzusetzen:
$ find -maxdepth 1 -type f -name 'foo.*' | sort | xargs cat > foo_3
man split cat md5sum
cat foo.{000..NNN}
wo NNN
das letzte erwartete Stück ist. Auf diese Weise erhalten Sie eine Fehlermeldung, wenn eines der Teile fehlt. Beachten Sie jedoch, dass -d
das Abrufen von numerischen Suffixen spezifisch für die GNU-Aufteilung ist. auf anderen Plattformen müssen Sie mit dem auskommen foo.aaa
, foo.aab
etc.
split
KB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024 usw.
... cat > foo_3
sein ... cat >>foo_3
?
rar
und 7zip
werden oft verwendet, um solche Splits einfacher plattformübergreifend wieder zusammenzusetzen
Sie können dies auch mit Archive Manager tun, wenn Sie eine grafische Benutzeroberfläche bevorzugen. Suchen Sie unter "Speichern-> Andere Optionen-> In Volumes aufteilen von".