Diviser des fichiers en utilisant tar, gz, zip, bzip2
J'ai besoin de compresser un gros fichier d'environ 17 à 20 GO. J'ai besoin de le diviser en plusieurs fichiers d'environ 1 GO par fichier.
J'ai cherché une solution sur Google et trouvé des façons à l'aide de split
et cat
commandes. Mais ils n'ont pas de travail pour les gros fichiers. Aussi, ils ne fonctionnent pas dans Windows, j'ai besoin de l'extraire sur une machine Windows.
- Je ressens votre douleur, mais cela ne semble pas être de programmation relative.
- De nombreux programmes de compression (par exemple, comme 7-Zip) est en mesure de diviser le fichier compressé dans des volumes d'une taille donnée, pour en faciliter la distribution.
- Cela appartient à superuser.com mais la beta privée ne démarre pas jusqu'à demain, me dit-on.
- Puis-je vous demander pourquoi vous avez besoin de ce fichier compressé?
- Si l'une des deux solutions viables posté ici n'est pas dehors, il va être besoin d'une solution de programmation.
- La approuvée réponse à cette question, montre comment vous pouvez le faire à l'aide de Python et le sous-processus module: stackoverflow.com/questions/4368818/... (Python est un langage de script disponible pour Windows, donc il ya une chance que cela fonctionne...)
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
split
de commande avec le-b
option:Il peut être remonté sur un ordinateur Windows à l'aide de @Joshua's réponse.
Modifier: Comme @Charlie indiqué dans le commentaire ci-dessous, vous pouvez définir un préfixe explicitement, car il va utiliser
x
non, qui peuvent être source de confusion.Modifier: la Modification de la poste, car la question est fermée et la solution la plus efficace est très proche du contenu de cette réponse:
Cette solution permet d'éviter l'utilisation d'un intermédiaire de fichiers volumineux lors de la (dé)compression. Utiliser le tar -C option pour utiliser un autre répertoire pour les fichiers résultants. btw, si l'archive est constituée à partir d'un seul fichier, le goudron pourrait être évité et seulement gzip utilisé:
Pour windows, vous pouvez télécharger porté versions de la même commandes ou de l'utilisation de cygwin.
-b 1024MiB
a donné une erreur que c'était un invalide nombre d'octets. À l'aide de--bytes=1024m
œuvres.cat
pour réassembler le fichier. Vous pouvez utilisercopy /b file1 + file2 + etc..
sur Windows, puis copier sur Linux et de goudron peut lire la remonté archive. Je l'ai juste essayé.--numeric-suffixes
: l'utilisation numérique des suffixes au lieu de alphabétiques.file=myfile.tar.gz
suivie parsplit -b 1024m $file ${file}-part-
. Ré-assemblage à l'aide decat ${file}-part-* > $file
--verbose
option lorsque le partage de gros fichiers.Si vous êtes le fractionnement à partir de Linux, vous pouvez toujours remonter dans Windows.
copy /b file* filetogether
-- support.microsoft.com/kb/71161utilisation de goudron pour divisé en plusieurs archives
il y a beaucoup de programmes qui fonctionnent avec du goudron de fichiers sur windows, y compris cygwin.
Testé le code, initialement crée un seul fichier d'archive, puis elle la divise:
Cette variante omet la création d'un seul fichier d'archive et va directement à la création de pièces:
Dans cette variante, si les archives de la taille du fichier est divisible par
$CHUNKSIZE
, la dernière partielle fichier la taille du fichier de 0 octets.split
le fait déjà.-v200m
option. Mais plus tard, je reviens et tester le vôtre aussi, et de voir mon erreur 😀