Come faccio a suddividere un file di grandi dimensioni, + 4 GB in file più piccoli di circa 500 MB ciascuno.
E come posso rimontarli di nuovo per ottenere il file originale?
Come faccio a suddividere un file di grandi dimensioni, + 4 GB in file più piccoli di circa 500 MB ciascuno.
E come posso rimontarli di nuovo per ottenere il file originale?
Risposte:
Puoi usare split e cat .
Ad esempio qualcosa del genere
$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.
(dove si trova il nome file di input foo
e l'ultimo argomento è il prefisso di output). Questo creerà file come foo.000 foo.001
...
Lo stesso comando con opzioni brevi:
$ split -b 100k -d -a 3 foo foo
È inoltre possibile specificare "--line-bytes" se si desidera suddividere i limiti della linea anziché solo il numero esatto di byte.
Per riassemblare nuovamente i pezzi generati è possibile utilizzare ad esempio:
$ cat foo.* > foo_2
(supponendo che la shell ordina i risultati del globbing della shell - e il numero di parti non superi il limite di argomenti dipendente dal sistema)
Puoi confrontare il risultato tramite:
$ cmp foo foo_2
$ echo $?
(che dovrebbe generare 0)
In alternativa, è possibile utilizzare una combinazione di find / sort / xargs per riassemblare i pezzi:
$ find -maxdepth 1 -type f -name 'foo.*' | sort | xargs cat > foo_3
man split cat md5sum
cat foo.{000..NNN}
dov'è NNN
l'ultimo pezzo previsto. In questo modo viene visualizzato un messaggio di errore se manca uno dei pezzi. Ma nota che -d
ottenere suffissi numerici è specifico della divisione GNU; su altre piattaforme si deve accontentare di foo.aaa
, foo.aab
ecc
split
, KB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024 ecc.
... cat > foo_3
essere ... cat >>foo_3
?
rar
e 7zip
sono spesso utilizzati per rendere più facili tali operazioni di rimontaggio multipiattaforma
Puoi anche farlo con Archive Manager se preferisci una GUI. Cerca in "Salva-> Altre opzioni-> Dividi in volumi di".