Cortar archivos grandes en Linux

Muchas veces tenemos archivos que son muy grandes y que su tamaño no nos permite trabajar con ellos de forma adecuada, por distintas razones, por ejemplo, limitaciones que tengamos en nuestro correo electrónico y que no nos permite enviar archivos después de determinado tamaño.

También pueda ser que ya no tenemos mucho espacio en alguna memoria usb y queremos trasladar de un lado a otro algún archivo que sobre pasa el espacio que tengamos disponible. O como en mi caso en el que estaba subiendo un archivo de 1.7Mb a un servidor a través de FTP, pero gracias a la pésima señal de internet que últimamente está proporcionando Telefónica Guatemala, el subir un pequeño archivo iba a ser una tarea imposible.

Entonces una vez mas la Consola de Linux salió al rescate, procedí a cortar el archivo en unos mas pequeños, los subí y luego ya en el servidor, por medio de SSH los volví a unir, descomprimí el archivo y ya pude trabajar en lo que quería.

Cuando fui usario de Windows, allá por el lejano XP y 98, utilizaba un programa llamado «Hacha», que no se si todavía exista, ahora en Kubuntu, mi distribución Linux que uso para trabajo, utilicé la siguiente secuencia de comandos de consola.

Supongamos que tenemos el archivo.zip que pesa 600Mb y utilizamos el comando split, con el cual podemos cortar el archivo e incluso indicarle de que tamaño queremos que sean las partes, entonces:

split -b100m archivo.zip archivo.@

Lo que acabamos de decirle a Linux es que con el comando split corte en pedazos de 100Mb (-b100m) el archivo llamado archivo.zip y que las parte las nombre de la forma archivo.@

El tamaño de las parte lo podemos cambiar simplemente modificando -b100m si lo quisiéramos en partes de 243Mb, entonces usamos -b243m, si lo queremos en partes de 300Kb usamos -b300k, si deseamos que sea en partes de 1Gb, entonces utilizamos -b1g, prestar especial atención a que la unidad de medida está en minúsculas y solo se utiliza la primera letra.

Luego le indicamos que las partes las nombre como archivo.@ que bien pudo ser nombre_archivo.@ lo importante es que después del nombre va un punto y el signo de arroba. Entonces en nuestro ejemplo

split -b100m archivo.zip archivo.@

Las partes quedan de la siguiente forma:

archivo.aa
archivo.ab
archivo.ac
archivo.ad
archivo.ae
archivo.af

Es decir quitó la extensión del archivo, en este caso .zip y la cambió por un par de letras en forma ascendente, que dependiendo el número de partes en las que se divida, así irá utilizando la combinación de letras del abecedario. Ya tenemos nuestros archivos divididos en partes de 100Mb.

¿Como hacemos para unir de nuevo los archivos?, utilizamos el comando «cat» de la siguiente forma:

cat archivo.*>archivo.zip

Después de aplicar el comando, veremos como las partes son unidas nuevamente en nuestro archivo original. Aquí le dijimos a la consola que con el comando cat una todas las partes llamadas archivo en un archivo llamado archivo.zip si deseamos que el archivo que estamos creando, tenga otro nombre, pues simplemente le cambiamos el nombre, por ejemplo otro_nombre.zip

En resumen:

Para cortar un archivo

split -b100m archivo.zip archivo.@

Para unir un archivo

cat archivo.*>archivo.zip

Como pueden ver, muy fácil y rápido, se puede usar sin importar el tamaño del archivo y la extensión del mismo.

Deja un comentario