Recortes en GNU/Linux

De hecho, existen ocasiones –aunque cada vez menos– en las que necesitamos dividir un fichero de gran tamaño (un archivo comprimido, un vídeo o un audio muy largo) en varios trozos del mismo tamaño, con el fin de poder ser copiado de un ordenador a otro, bien a través de unos cuantos dispositivos de almacenamiento con poca capacidad (lápiz de memoria, tarjeta SD, …), o por Internet, mediante algún servicio de transmisión con limitaciones de tamaño (correo electrónico, FTP, chat, …).

En tales casos podríamos recurrir a cualquier utilidad gráfica de compresión de datos que ofrezca la opción de partir archivos comprimidos en volúmenes de un determinado tamaño, aunque en el terminal de GNU/Linux disponemos de una par de soluciones más elegantes: los comandos lxsplit y hoz, dos sencillas herramientas para dividir archivos y pegar los archivos divididos (sin realizar ningún tipo de compresión).

lxsplit

Pongo un ejemplo para ilustrar el particionado de un archivo con el comando lxsplit.

$ ls -l
total 61M
-rw------- 1 aag aag 61M oct 12  2005 linux-12102005-1026.zip
$ lxsplit -s linux-12102005-1026.zip 10M
Splitting linux-12102005-1026.zip into 7 pieces.
linux-12102005-1026.zip.001			10485760 bytes
linux-12102005-1026.zip.002			10485760 bytes
linux-12102005-1026.zip.003			10485760 bytes
linux-12102005-1026.zip.004			10485760 bytes
linux-12102005-1026.zip.005			10485760 bytes
linux-12102005-1026.zip.006			10485760 bytes
linux-12102005-1026.zip.007			332756 bytes
Done!
$ ls -l
total 123536
-rw------- 1 aag aag 63247316 oct 12  2005 linux-12102005-1026.zip
-rw-r--r-- 1 aag aag 10485760 mar  9 17:57 linux-12102005-1026.zip.001
-rw-r--r-- 1 aag aag 10485760 mar  9 17:57 linux-12102005-1026.zip.002
-rw-r--r-- 1 aag aag 10485760 mar  9 17:57 linux-12102005-1026.zip.003
-rw-r--r-- 1 aag aag 10485760 mar  9 17:57 linux-12102005-1026.zip.004
-rw-r--r-- 1 aag aag 10485760 mar  9 17:57 linux-12102005-1026.zip.005
-rw-r--r-- 1 aag aag 10485760 mar  9 17:57 linux-12102005-1026.zip.006
-rw-r--r-- 1 aag aag   332756 mar  9 17:57 linux-12102005-1026.zip.007

Aquí vemos como se divide un archivo de 61 Mb en trozos de 10 Mb. El argumento -s indica que se aplicará sobre el archivo la acción de dividir (split); el tamaño de los trozos se puede especificar en diversas unidades: Bytes, Kilobytes o Megabytes.

$ lxsplit -j linux-12102005-1026.zip.001
Creating merged file `linux-12102005-1026.zip'.
Complete size: 63247316 in 7 files.
Processing file `linux-12102005-1026.zip.001' ...
Processing file `linux-12102005-1026.zip.002' ...
Processing file `linux-12102005-1026.zip.003' ...
Processing file `linux-12102005-1026.zip.004' ...
Processing file `linux-12102005-1026.zip.005' ...
Processing file `linux-12102005-1026.zip.006' ...
Processing file `linux-12102005-1026.zip.007' ...
Done!

En este ejemplo vemos la acción contraria: pego los trozos del archivo que fue cortado anteriormente. Para ello se utiliza la opción -j (join) y se añade el nombre del fichero que contiene el primer fragmento (en este caso linux-12102005-1026.zip.001).

Este comando es compatible con HJSplit, una aplicación multiplataforma para cortar y recombinar archivos. De forma que con lxsplit se pueden pegar fragmentos de un archivo que haya sido dividido con HJ-Split, y viceversa.

Hoz

Herramienta que utiliza el formato de archivo de Hacha, el popular programa de cortar archivos desarrollado hace tiempo para otros sistemas; por tanto, ambas aplicaciones son compatibles entre sí.

Hoz admite las siguientes opciones:

  • -c tamaño [K|M] → corta el archivo en varios trozos del tamaño especificado, el cual puede expresarse en Kilobytes o Megabytes
  • -p → pega varios trozos en un archivo

  • -f → si al pegar varios trozos ya existe el archivo resultante, se sobrescribe

  • -o directorio → especifica el directorio donde se desea ubicar el archivo recombinado

$ hoz -c 10M linux-12102005-1026.zip
HOZ 1.65 Copyright (c) 2004 Gustavo Picon
http://hoz.sourceforge.net/
* Cortando a archivo: "linux-12102005-1026.zip.0":
* Progreso: 10481664 de 63247316 bytes (16.57%)
* Cortando a archivo: "linux-12102005-1026.zip.1":
* Progreso: 20967424 de 63247316 bytes (33.15%)
* Cortando a archivo: "linux-12102005-1026.zip.2":
* Progreso: 31453184 de 63247316 bytes (49.73%)
* Cortando a archivo: "linux-12102005-1026.zip.3":
* Progreso: 41938944 de 63247316 bytes (66.31%)
* Cortando a archivo: "linux-12102005-1026.zip.4":
* Progreso: 52424704 de 63247316 bytes (82.89%)
* Cortando a archivo: "linux-12102005-1026.zip.5":
* Progreso: 62910464 de 63247316 bytes (99.47%)
* Cortando a archivo: "linux-12102005-1026.zip.6":
* Progreso: 63247316 de 63247316 bytes (100.00%)

*** Archivo cortado: linux-12102005-1026.zip (63247316 bytes) en 0.493 segundos (128188515 bytes/s) [ruta de sailda='/media/.../.../']
$ ls -l
total 121M
-rw-r--r-- 1 aag aag 11M mar 9 19:54 linux-12102005-1026.zip.0
-rw-r--r-- 1 aag aag 10M mar 9 19:54 linux-12102005-1026.zip.1
-rw-r--r-- 1 aag aag 10M mar 9 19:54 linux-12102005-1026.zip.2
-rw-r--r-- 1 aag aag 10M mar 9 19:54 linux-12102005-1026.zip.3
-rw-r--r-- 1 aag aag 10M mar 9 19:54 linux-12102005-1026.zip.4
-rw-r--r-- 1 aag aag 10M mar 9 19:54 linux-12102005-1026.zip.5
-rw-r--r-- 1 aag aag 325K mar 9 19:54 linux-12102005-1026.zip.6
-rw-r--r-- 1 aag aag 61M mar 9 18:35 linux-12102005-1026.zip
$ hoz -p -o ~/ linux-12102005-1026.zip.0
HOZ 1.65 Copyright (c) 2004 Gustavo Picon
http://hoz.sourceforge.net/

*** Pegando archivo: "linux-12102005-1026.zip" (63247316 bytes)

* Pegando "linux-12102005-1026.zip.0":
* Progreso: 10485760 de 63247316 bytes (16.58%)
* Pegando "linux-12102005-1026.zip.1":
* Progreso: 20971520 de 63247316 bytes (33.16%)
* Pegando "linux-12102005-1026.zip.2":
* Progreso: 31457280 de 63247316 bytes (49.74%)
* Pegando "linux-12102005-1026.zip.3":
* Progreso: 41943040 de 63247316 bytes (66.32%)
* Pegando "linux-12102005-1026.zip.4":
* Progreso: 52428800 de 63247316 bytes (82.89%)
* Pegando "linux-12102005-1026.zip.5":
* Progreso: 62914560 de 63247316 bytes (99.47%)
* Pegando "linux-12102005-1026.zip.6":
* Progreso: 63247316 de 63247316 bytes (100.00%)

*** Archivo pegado: linux-12102005-1026.zip (63247316 bytes) en 0.488 segundos (129608077 bytes/s) [path de salida='/home/.../']

En este ejemplo he cortado el mismo archivo de antes en trozos de 10 Mb, que luego he pegado para recombinar el archivo original, situándolo en mi directorio personal (/home/…/).

Existe una interfaz gráfica para este comando, llamada ghoz, que proporciona las mismas funcionalidades que hoz, sin necesidad de abrir el terminal ni memorizar las opciones. Se puede ejecutar instalando previamente el paquete hoz-gui.

$ sudo aptitude install hoz-gui
Ventana Ghoz

Interfaz de Ghoz

Y por último, recordar que para utilizar ambos comandos, lxsplit y hoz, será necesario instalar sus correspondientes paquetes, pues no suelen venir pre-instalados, al menos en las distribuciones Ubuntu y Mint.

$ sudo aptitude install hoz lxsplit

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s