Si tengo un archivo grande y necesito dividirlo en fragmentos de 100 megabytes, lo haré
split -b 100m myImage.iso
Eso generalmente me da algo como
xaa
xab
xac
xad
Y para volverlos a juntar he estado usando
cat x* > myImage.iso
Parece que debería haber una forma más eficiente que leer cada línea de código en un grupo de archivos cat
y redirigir la salida a un nuevo archivo. Como una forma de abrir dos archivos, quitar el EOF
marcador del primero y conectarlos, sin tener que revisar todo el contenido.
Windows / DOS tiene un comando de copia para archivos binarios. La ayuda menciona que este comando fue diseñado para poder combinar múltiples archivos. Funciona con esta sintaxis: ( /b
es para modo binario)
copy /b file1 + file2 + file3 outputfile
¿Hay algo similar o una mejor manera de unir archivos grandes en Linux que cat?
Actualizar
Parece que cat
de hecho es la forma correcta y la mejor manera de unir archivos. Me alegra saber que estaba usando el comando correcto todo el tiempo :) Gracias a todos por sus comentarios.
cat x*
considerar la expansión de la abrazadera de concha, cat xa{a..g}
que expande la secuencia especificada a cat
xaa xab xac xad xae xaf xag
cat x*
? Sería la nueva configuración regional no que también afectan split
de manera que si split
y cat x*
se utilizaron en el mismo sistema que siempre iba a funcionar?
split.c
en Coreutils GNU, los sufijos se construyen a partir de una matriz fija de caracteres: static char const *suffix_alphabet = "abcdefghijklmnopqrstuvwxyz";
. El sufijo no se vería afectado por la configuración regional. (Pero yo no creo que ningún local en su sano juicio reordenar las letras minúsculas, incluso EBCDIC mantiene su orden natural.)
cat x*
, porque el orden de los archivos depende de la configuración regional. Mejor comience a escribircat x
, que presione Esc y luego*
, verá el orden ampliado de los archivos y podrá reorganizarlos.