4

Я хочу объединить два или более файлов в Linux, поэтому я использую следующую команду:

cat small_file LARGE_File LARGER_FILE > SUM_OF_FILES

Однако это работает очень медленно.

Кто-нибудь знает инструмент Linux, который объединяет файлы в самое быстрое время?

3 ответа3

5

Вы можете попробовать вариант команды dd, например:

dd if=small_file bs=4k of=SUM_OF_FILES

dd if=LARGE_FILE bs=4k of=SUM_OF_FILES oflag=append

dd if=LARGER_FILE bs=4k of=SUM_OF_FILES oflag=append
1

Я нашел mmv (Массовое перемещение и переименование - перемещение, копирование, добавление или связывание нескольких файлов с использованием шаблонов подстановочных знаков.) Из этой полезной ссылки на bash. Так что вы могли бы сделать:

cp small_file SUM_OF_FILES
mmv -a LARGE_File SUM_OF_FILES
mmv -a LARGER_FILE SUM_OF_FILES

(примечание: mmv не устанавливается по умолчанию, используйте sudo apt-get install mmv)

0

Может быть

cat small_file >> LARGE_File

будет делать то, что вы хотите? Если вам нужно, чтобы LARGE_FILE был неизменным

cp LARGE_File SUM_OF_FILES
cat small_file >> SUM_OF_FILES

лучше, но это будет только немного быстрее, чем ваш оригинальный код.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .