J'ai besoin de compresser un gros fichier d'environ 17-20 Go. Je dois le diviser en plusieurs fichiers d'environ 1 Go par fichier.
J'ai cherché une solution via Google et trouvé des moyens d'utiliser split
et des cat
commandes. Mais ils ne fonctionnaient pas du tout pour les gros fichiers. De plus, ils ne fonctionneront pas sous Windows; J'ai besoin de l'extraire sur une machine Windows.
linux
bash
file-io
compression
Alias
la source
la source
Réponses:
Vous pouvez utiliser la
split
commande avec l'-b
option:Il peut être réassemblé sur une machine Windows en utilisant la réponse de @ Joshua .
Edit : Comme @Charlie l'a indiqué dans le commentaire ci-dessous, vous voudrez peut-être définir un préfixe explicitement car il utilisera
x
autrement, ce qui peut être déroutant.Edit : Modifier le message car la question est fermée et la solution la plus efficace est très proche du contenu de cette réponse:
Cette solution évite d'avoir à utiliser un gros fichier intermédiaire lors de la (dé) compression. Utilisez l'option tar -C pour utiliser un répertoire différent pour les fichiers résultants. btw si l'archive se compose d'un seul fichier, tar pourrait être évité et seul gzip utilisé:
Pour Windows, vous pouvez télécharger des versions portées des mêmes commandes ou utiliser cygwin.
la source
-b 1024MiB
donné une erreur indiquant que le nombre d'octets était invalide. Utiliser des--bytes=1024m
œuvres.cat
pour réassembler le fichier. Vous pouvez utilisercopy /b file1 + file2 + etc..
sur Windows, puis recopier sur Linux et tar peut lire l'archive tar réassemblée. J'ai juste essayé.--numeric-suffixes
: utiliser des suffixes numériques au lieu de l'alphabet.Si vous vous séparez de Linux, vous pouvez toujours le réassembler sous Windows.
la source
copy /b file* filetogether
- support.microsoft.com/kb/71161utiliser tar pour diviser en plusieurs archives
il existe de nombreux programmes qui fonctionnent avec des fichiers tar sur Windows, y compris cygwin.
la source
Code testé, crée initialement un seul fichier d'archive, puis le divise:
Cette variante omet de créer un seul fichier d'archive et passe directement à la création de pièces:
Dans cette variante, si la taille du fichier de l'archive est divisible par
$CHUNKSIZE
, alors le dernier fichier partiel aura une taille de fichier de 0 octet.la source
split
fait déjà.