====== Cómo cortar archivos con split y unirlos con cat ====== ===== Introducción ===== A veces puede ser necesario fraccionar un archivo para su transmisión por correo en partes, o para colocarlo en un FTP o sitio web para su descarga por partes. Una forma de hacerlo es mediante compresores que permiten volúmenes múltiples, pero con el comando ''split'' también podemos separar/cortar archivos en fragmentos, para luego unirlos con ''cat''. ===== Comandos ===== Los comandos ''split'' y cat suelen venir en todas las distribuciones de GNU/Linux, y no son difíciles de utilizar. Por ejemplo, con el siguiente comando fraccionaremos el archivo ''prueba.dat'' y obtendremos archivos de 1 MiB llamados **cortadoaa**, **cortadoab**, **cortadoac**, etc. $ split -b 1M prueba.dat cortado Con el comando ''cat'' podemos unir todas las partes del archivo para asi restaurarlo (ojo, que todos deben de encontrarse en el mismo directorio). $ cat cortado* > prueba.dat Puede darse el caso de que un archivo sea grande y necesitemos fraccionarlo en muchos fragmentos pequeños (por ejemplo de 1 MiB). Para tales casos, es mejor utilizar un sufijo numérico: $ split -b 1M -d -a 3 archivo.dat archivo.dat. Asi obtendremos fragmentos de 1 MiB llamados **archivo.dat.000**, **archivo.dat.001**, etc. ''-b'' Indica el tamaño en que se desean obtener los archivos, puede especificarse en KiB (''-b 200K''), en MiB (''-b 1M''), en GiB (''-b 1G''), etc. Por ejemplo, dado que a veces los buzones de correo tienen un límite de 1 MiB y que al adjuntar un archivo binario (cualquier programa o documento que no esté en formato de texto simple) este suele crecer aproximadamente 1/3 (como efecto de la codificación de binario a texto), si deseamos enviar un archivo de 2 MiB por correo, podríamos utilizar split con el parámetro ''-b 720K'' y entonces enviar los fragmentos como adjuntos, uno por mensaje. ''-d'' Indica que se desea utilizar sufijos numéricos en lugar de alfabéticos. ''-a'' Permite especificar cuantos dígitos deseamos (por defecto son 2). Si por algún motivo deseamos cerciorarmos que al concatenar las partes se hará en el orden correcto, podríamos hacer algo como esto: $ cat `find /ruta/origen -type f -iname "archivo.dat.*" | sort` > /ruta/destino/archivo.dat En el caso de un archivo de texto, también podríamos especificar cada cuántas líneas ''split'' debe cortar el archivo, mediante el parámetro ''-l número'' Para más información, consultar el manual: $ man split $ man cat ===== Atribuciones ===== * **Autor:** Hugo Florentino