2015-07-15 5 views
6

Я пытаюсь объединить большие файлы (некоторые GB) в bash. Я попыталсяОграничения перенаправления выхода bash?

cat file1 file2 file3 > result 

и это не сработало, а

cat file1 file2 file3 >> result 

работал. В обоих случаях результат файла не существовал раньше, и я ожидал, что обе команды дадут тот же результат.

В той же системе я пробовал то же самое с небольшими файлами (всего несколько байтов), и обе команды производят одинаковый вывод. Я попытался найти какое-то объяснение (например, here), но не смог найти ...

Итак, я знаю, как решить свою проблему, но я все еще озадачен. Кто-нибудь может дать ключ?

+4

Что произошло, когда вы запустили первую команду? – lcd047

+0

Являются ли эти файлы всеми нерегулярными файлами? – Alepac

+0

@ lcd047 отдельные файлы являются .gz.parts, и результат не позволит мне распаковать его, он дал ошибку – Silentfury

ответ

1

, когда мне нужно разделить файл я использую трюк, который работает очень хорошо:

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

затем, чтобы восстановить:

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

так кошка сделать работу независимо от containt есть. Поэтому, если это не работает, происходит ли плохое производство ваших разделенных файлов или ограничение вашей файловой системы. Какую файловую систему вы используете?

Смежные вопросы