lunes, 12 de enero de 2009

Partir archivos grandes

Recuerdo cuando apareció el WinRAR (para windows)... una de las grandes novedades que traía era la opción de partir el archivo comprimido resultante en pedazos de tamaño configurable... lo cual fue una gran cosa en aquel tiempo, porque la mayoría de los servidores de correo electrónico sólo permitían archivos de 2MB.

Cuando me pasé a Linux no sabía cómo hacer eso... y la verdad ni siquiera entendía el modelo de funcionamiento de "los programas para comprimir" del mundo GNU... posteriormente entendí que esos programas no son más que Front-Ends para comandos de consola (principalmente para tar), pero seguí sin saber cómo partir los archivos.

Algún tiempo después, "descubrí" por casualidad el comando split (andaba buscando otra cosa). Este comando permite dividir un archivo arbitrario, por líneas o por bytes. Fue una gran alegría encontrarlo, ya que en ese mismo tiempo comencé a trabajar con máquinas virtuales (y sus discos duros son archivos bien grandes que necesitaba dividir para transportarlos). Pero inmediatamente después, me surgió la duda correspondiente: ¿Cómo unirlos después?

Bueno, seguí buscando y leyendo, y encontré que un comando que yo "conocía" de antaño era la respuesta: el comando cat.

El comando cat, concatena archivos y los despliega en la salida estándar. Entonces para unir los pedazos, se procede así:
$ cat pedazo-01 pedazo-02 ... > archivo-unido
El comando cat concatena los archivos pedazo-01, pedazo-02, etc. y con el redireccionador de flujo de salida del bash (>), la salida estándar de cat se redirige al archivo archivo-unido que obviamente será sobreescrito si ya existe.

2 comentarios:

  1. Un problema que yo he tenido con slit es porque requiere que tengás libre el mismo espacio que ocupa el archivo que querés partir, es decir, si quiero partir un iso de 4Gb, debo tener al menos 4Gb libres en una partición.

    Por ejemplo, si sólo tengo 2Gb libres en / y 2Gb en /home/, podría hacer lo siguiente:
    -ejecutar el split
    -estar monitoreando el espacio libre con 'df'
    -antes de que se agote el espacio detener el split con ctrl-z
    -mover los archivos que ya escribió el split a la otra partición
    -continuar el split con 'fg'

    Espero les sirva.

    ResponderEliminar
  2. ¡Vaya!... yo tuve ese pequeño inconveniente del espacio hace poco, teniendo el espacio disponible pero en distintos lugares, la verdad al final decidí tener que mover algunas cosas para tener el espacio libre, pero ahora que lo veo me parece una excelente estrategia.

    Saludos.

    ResponderEliminar

Si necesitas ayuda, por favor, intenta encontrarla antes de pedirla. El mundo del internet es bastante grande, probablemente alguien ya resolvió tu problema.