Cómo dividir un archivo en Linux desde la terminal

En Tutoriales y Guías por

En ocasiones trabajamos con ficheros más grandes de la cuenta y nos encontramos con problemas a la hora de gestionarlos. Por eso veo muy útil leer el tutorial de hoy, en el que os enseñamos cómo dividir un archivo en Linux desde la terminal.

Cómo dividir un archivo en Linux desde la terminal

Los principales inconvenientes de manejar archivos demasiado grandes, me los he encontrado cuando intento guardarlos en un pendrive cuyo sistema de archivos suele ser FAT32 y no permite ficheros de un tamaño mayor a 4GB.

Otro problema es cuando quiero compartirlos y tengo que guardarlos en la nube o en un servidor remoto, que por lo general con archivos grandes se hace un poco más complejo en caso de fallo de red.

A lo largo de esta mini guía, iremos detallando todos los comandos para dividir un archivo desde la terminal y también para poder juntar los archivos más tarde y obtener así el original.

Cómo dividir un archivo en Linux desde la terminal de forma fácil y rápida.

En primer lugar usaremos el comando split, cuya funcionalidad es precisamente la de dividir archivos. En este tutorial mostraremos los ejemplos más elementales, pero siempre podemos consultar la página de ayuda con el comando man split para obtener otras opciones avanzadas.

Para nuestro ejemplo, vamos a imaginar que tenemos un archivo llamado prueba.log que ocupa 500MB y queremos dividirlo en cinco partes de 100MB cada una. El comando que tendríamos que ejecutar sería:
split -b 100m prueba.log salida

Este comando creará cinco ficheros de 100MB cada uno, cuyos nombres serán: salidaa, salidab, salidac, salidad y salidae. Vemos que añade una letra al final del nombre de salida.

Podemos indicar que en vez de una letra añada un número con el comando:
split -b -d 100m prueba.log salida

Ahora que ya conocemos los comandos básicos vamos a profundizar un poco más. Mi primera recomendación es añadir al nombre salida una barra baja al final, así cuando le añada la letra o el número que identifica a cada parte, resultará que los nombres de los archivos serán más fáciles de leer (por ejemplo salida_a, salida_b, … o salida_1, salida_2, …).

En lugar de especificar el tamaño de cada parte, podemos especificar el número de partes en las que queremos dividir el archivo. Por ejemplo, para dividir en cinco partes, el comando sería:
split -d -n 5 prueba.log salida_

Dividiendo archivos de texto en función del número de líneas.

Hasta ahora hemos dividido archivos sin importarnos qué tipo de archivo era, pero cuando estamos trabajando con archivos de texto, a veces es buena idea dividir en función del número de líneas.

En el siguiente ejemplo dividimos un archivo de texto en varias partes, pero cada parte tendrá 1000 líneas. El comando sería:
split -l -d 1000 prueba.log salida_

Cómo juntar los archivos divididos en un único archivo idéntico al original.

Para volver a juntar los archivos, el comando que usaremos será cat. Este comando está diseñado para leer ficheros y concatenarlos. Para unir todas las partes de un archivo, empleamos el comando:
cat salida_* > prueba.log

Con este sencillo comando, uniremos todas las partes para restaurar el archivo prueba.log que será exactamente igual al original.

Para finalizar, otras posibilidades y alternativas.

Existe una última posibilidad, que es emplear algún tipo de compresor para crear volúmenes, por ejemplo con 7zip o Rar. Como estos programas no vienen instalados por defecto en la mayoría de sistema Linux, les dedicaremos nuestra atención en un tutorial diferente.