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