Якщо у мене великий файл і мені потрібно розділити його на 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, а потім*- ви побачите розширений порядок файлів і зможете переставити.