2015-07-15 10 views
6

Ich versuche, große Dateien (einige GB) in bash zu verketten. Ich habe versucht,bash output redirection limits?

cat file1 file2 file3 > result 

und es hat nicht funktioniert, während

cat file1 file2 file3 >> result 

gearbeitet. In beiden Fällen existierte das Dateiergebnis nicht vorher und ich würde erwarten, dass beide Befehle dasselbe Ergebnis liefern.

Auf dem gleichen System habe ich das gleiche mit kleinen Dateien (nur einige Bytes) versucht und beide Befehle produzieren die gleiche Ausgabe. Ich habe versucht, eine Erklärung zu finden (zum Beispiel here) aber konnte keine finden ...

Also, ich weiß, wie ich mein Problem lösen, aber ich bin immer noch verwirrt. Kann jemand einen Hinweis geben?

+4

Was ist passiert, als Sie den ersten Befehl ausgeführt haben? – lcd047

+0

Sind diese Dateien alle _regular files_? – Alepac

+0

@ lcd047 die einzelnen Dateien sind .gz.parts und das Ergebnis ließ mich nicht dekomprimieren es gab einen Fehler – Silentfury

Antwort

1

wenn ich Datei aufteilen müssen verwende ich einen Trick, die sehr gut funktioniert:

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

dann, wiederherzustellen:

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

so Katze die Arbeit tun, was auch immer die containt ist. Also, wenn es nicht funktioniert, ob es eine fehlerhafte Produktion Ihrer geteilten Dateien oder eine Einschränkung mit Ihrem Dateisystem gibt. Welches Dateisystem verwendest du?