Если у меня большой файл и мне нужно разбить его на 100 мегабайт, я сделаю
split -b 100m myImage.iso
Это обычно дает мне что-то вроде
xaa
xab
xac
xad
И чтобы вернуть их вместе, я использовал
cat x* > myImage.iso
Похоже, должен быть более эффективный способ, чем чтение каждой строки кода в группе файлов catи перенаправление вывода в новый файл. Как способ просто открыть два файла, удалить EOFмаркер из первого и соединить их - без необходимости просматривать все содержимое.
Windows / DOS имеет команду копирования для двоичных файлов. В справке упоминается, что эта команда была разработана для возможности объединения нескольких файлов. Он работает с этим синтаксисом: ( /bдля двоичного режима)
copy /b file1 + file2 + file3 outputfile
Есть ли что-то похожее или лучший способ объединения больших файлов в Linux, чем cat?
Обновить
Кажется, что catэто действительно правильный и лучший способ объединения файлов. Рад, что я все время использовал правильную команду :) Спасибо всем за ваши отзывы.
cat x*вы можете рассмотреть расширение оболочки скобки, cat xa{a..g}которое расширяет указанную последовательность до cat xaa xab xac xad xae xaf xag
cat x*? Будет ли новая установка локали также не влияет , splitтак что если splitи cat x*были использованы в той же системе , что они всегда будут работать?
split.cв GNU Coreutils, суффиксы построены из фиксированного массива символов: static char const *suffix_alphabet = "abcdefghijklmnopqrstuvwxyz";. Суффикс не будет зависеть от локали. (Но я не думаю, что какой-либо здравомыслящий язык переставил бы строчные буквы; даже EBCDIC поддерживает их стандартный порядок.)
cat x*, потому что порядок файлов зависит от настроек вашего языка. Лучше начать печататьcat x, чем нажать Esc, а затем*- вы увидите расширенный порядок файлов и сможете изменить порядок.