Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

tutoriales:cortar_split_cat [2013/03/19 14:59]
127.0.0.1 editor externo
tutoriales:cortar_split_cat [2016/08/01 13:12] (actual)
hugo Ligera ampliación y agregada atribución
Línea 1: Línea 1:
 ====== Cómo cortar archivos con split y unirlos con cat ====== ====== Cómo cortar archivos con split y unirlos con cat ======
  
-Con el comando ''​split''​ podemos separar/​cortar archivos en fragmentos (por ejemplo, para enviarlos por correo electrónico).+===== Introducción =====
  
-<​code>​$ split -b 1M archivo.7z cortado</code>+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 partesUna 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''​.
  
-Con esto obtendremos archivos de 1 MiB llamados **cortadoaa**,​ **cortadoab**,​ **cortadoac**,​ etc.+===== 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. 
 + 
 +<​code>​$ split -b 1M prueba.dat cortado</​code>​
  
 Con el comando ''​cat''​ podemos unir todas las partes del archivo para asi restaurarlo (ojo, que todos deben de encontrarse en el mismo directorio). Con el comando ''​cat''​ podemos unir todas las partes del archivo para asi restaurarlo (ojo, que todos deben de encontrarse en el mismo directorio).
  
-<​code>​$ cat cortado* > nuevo_archivo.7z</​code>​+<​code>​$ cat cortado* > prueba.dat</​code>​
  
-Para organizarnos mejorpodríamos ​utilizar ​el comando ''​split''​ de esta manera:+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 casoses mejor utilizar ​un sufijo numérico:
  
-<​code>​$ split -b 1M -d -a 3 archivo.7z archivo.7z.</​code>​+<​code>​$ split -b 1M -d -a 3 archivo.dat archivo.dat.</​code>​
  
-Asi obtendremos fragmentos de 1 MiB llamados **archivo.7z.000**, **archivo.7z.001**, etc.+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. ''​-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.
Línea 22: Línea 26:
  
 ''​-a''​ Permite especificar cuantos dígitos deseamos (por defecto son 2). ''​-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:
 +
 +<​code>​$ cat `find /​ruta/​origen -type f -iname "​archivo.dat.*"​ | sort` > /​ruta/​destino/​archivo.dat</​code>​
  
 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''​ 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''​
Línea 27: Línea 35:
 Para más información,​ consultar el manual: Para más información,​ consultar el manual:
  
-<​code>​$ man split</​code>​+<​code>​ 
 +$ man split 
 +$ man cat 
 +</​code>​ 
 + 
 +===== Atribuciones ===== 
 + 
 +  * **Autor:** Hugo Florentino
Conectarse