2015-07-15 14 views
6

Provo a concatenare file di grandi dimensioni (alcuni GB) in bash. Ho provatolimiti di reindirizzamento dell'uscita bash?

cat file1 file2 file3 > result 

e non ha funzionato mentre

cat file1 file2 file3 >> result 

lavorato. In entrambe le occasioni il risultato del file non esisteva prima e la mia aspettativa sarebbe che entrambi i comandi dessero lo stesso risultato.

Sullo stesso sistema ho provato la stessa cosa con file di piccole dimensioni (solo alcuni byte) ed entrambi i comandi producono lo stesso risultato. Ho cercato di trovare qualche spiegazione (ad esempio here) ma non ho trovato alcun ...

Quindi, so come risolvere il mio problema, ma sono ancora perplesso. Qualcuno è in grado di produrre un indizio?

+4

Cosa è successo quando si esegue il primo comando? – lcd047

+0

Questi file sono tutti _regular files_? – Alepac

+0

@ lcd047 i singoli file sono .gz.parts e il risultato non mi permette di decomprimerlo ha dato un errore – Silentfury

risposta

1

quando ho bisogno di dividere file io uso un trucco che funziona molto bene:

tar --one-file-system -czv /home | split -b 4000m - /media/DRIVENAME/BACKUPNAME.tgz 

poi, per ripristinare:

cat /media/DRIVENAME/BACKUPNAME.tgz.* | tar -x /

modo gatto fare il lavoro qualunque sia il containt è. Quindi, se non funziona, c'è una brutta produzione dei tuoi file splittati o una limitazione con il tuo filesystem. Che filesystem stai usando?