Rompere un file di grandi dimensioni in pezzi più piccoli


Risposte:


79

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 fooe 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

2
Prova questo comando:man split cat md5sum
Kevin M

6
Durante il montaggio, raccomando cat foo.{000..NNN}dov'è NNNl'ultimo pezzo previsto. In questo modo viene visualizzato un messaggio di errore se manca uno dei pezzi. Ma nota che -dottenere suffissi numerici è specifico della divisione GNU; su altre piattaforme si deve accontentare di foo.aaa, foo.aabecc
Gilles 'stop SO-essere male'

1
E tieni presente che, per split, KB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024 ecc.
Zorawar,

1
Non dovrebbe ... cat > foo_3essere ... cat >>foo_3?
aprile

1
Se decidi di alleviare il dolore usando un'utilità. rare 7zipsono spesso utilizzati per rendere più facili tali operazioni di rimontaggio multipiattaforma
apposto il

4

Puoi anche farlo con Archive Manager se preferisci una GUI. Cerca in "Salva-> Altre opzioni-> Dividi in volumi di".


5
l'ho taggato "riga di comando", ma grazie per la risposta :)
Stefan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.