Hay varias formas diferentes de comprimir archivos usando la línea de comando de Linux. Este artículo incluye ejemplos prácticos que muestran cómo usar el comando zip para compactar y organizar archivos dentro de su sistema de archivos.
Los archivos comprimidos se utilizan cuando necesita ahorrar espacio y copiar archivos grandes de un lugar a otro.
Si tiene 10 archivos que tienen un tamaño de 100 megabytes y necesita transferirlos a un sitio ftp, la transferencia puede llevar un tiempo considerable dependiendo de la velocidad del procesador.
Si comprime los 10 archivos en un solo archivo comprimido y la compresión reduce el tamaño del archivo a 50 MB por archivo, solo tendrá que transferir la mitad de los datos.
Cómo crear un archivo de todos los archivos en una carpeta
Imagina que tienes una carpeta de canciones con los siguientes archivos MP3 en ella:
Night Prowler.mp3 |
Amor hombre hambriento.mp3 |
Consíguelo Hot.mp3 |
Camina sobre ti.mp3 |
Carretera al infierno.mp3 |
Si quieres sangre lo tienes.mp3 |
Mostrar abajo en llamas.mp3 |
Toca demasiado.mp3 |
Golpeando alrededor del arbusto.mp3 |
Girls Got Rhythm.mp3 |
Este sencillo comando de Linux que ilustra cómo crear un archivo de todos los archivos en la carpeta actual llamada ACDC_Highway_to_Hell.zip:
zip ACDC_Highway_to_Hell *
El texto se desplaza hacia arriba en la pantalla mostrando los archivos a medida que se agregan.
Cómo incluir archivos ocultos en un archivo
El comando anterior está bien para archivar todos los archivos en una carpeta, pero solo incluye los archivos que no están ocultos.
No siempre es así de simple. Imagina que quieres comprimir tu carpeta de inicio para poder hacer una copia de seguridad en una unidad USB o disco duro externo. Su carpeta de inicio incluye archivos ocultos.
Para comprimir todos los archivos, incluidos los archivos ocultos en una carpeta, ejecute el siguiente comando:
zip casa *. *
Esto crea un archivo llamado home.zip con todos los archivos dentro de la carpeta de inicio.
(Debe estar en la carpeta de inicio para que esto funcione). El problema con este comando es que solo incluye los archivos en la carpeta de inicio y no las carpetas, lo que nos lleva al siguiente ejemplo.
Cómo archivar todos los archivos y subcarpetas en un archivo Zip
Para incluir todos los archivos y subcarpetas dentro de un archivo, ejecute el siguiente comando:
zip -r casa.
Cómo agregar nuevos archivos a un archivo comprimido existente
Si desea agregar nuevos archivos a un archivo existente o actualizar los archivos en un archivo, use el mismo nombre para el archivo al ejecutar el comando zip.
Por ejemplo, imagine que tiene una carpeta de música con cuatro álbumes y crea un archivo llamado music.zip para mantenerlo como respaldo. Ahora imagina que una semana después descargas dos nuevos álbumes. Para agregar los nuevos álbumes al archivo zip, simplemente ejecute el mismo comando zip que usó la semana anterior.
Para crear el archivo de música original ejecute el siguiente código:
zip -r música / inicio / tu nombre / música /
Para agregar nuevos archivos al archivo, ejecute el mismo comando nuevamente.
Si el archivo zip tiene una lista de archivos y uno de los archivos en el disco ha cambiado, entonces el archivo modificado se actualiza en el archivo zip.
Cómo actualizar los archivos existentes en un archivo comprimido
Si tiene un archivo zip que se supone que debe contener los mismos nombres de archivo cada vez y desea actualizar ese archivo con cualquier cambio que se haya realizado en esos archivos, entonces -F El interruptor te ayuda a hacer esto.
Por ejemplo, imagine que tiene un archivo comprimido con los siguientes archivos:
/ home / yourname / documents / file1 |
/ home / yourname / documents / file2 |
/ home / yourname / documents / file3 |
/ home / yourname / documents / file4 |
/ home / yourname / documents / file5 |
/ home / yourname / documents / file6 |
Ahora imagine que durante la semana, agregó dos archivos nuevos y modificó dos archivos para que la carpeta / home / yourname / documents ahora se vea así:
/ home / yourname / documents / file1 |
/ home / yourname / documents / file2 |
/ home / yourname / documents / file3 |
/ home / yourname / documents / file4 (actualizado) |
/ home / yourname / documents / file5 (actualizado) |
/ home / yourname / documents / file6 |
/ home / yourname / documents / file7 |
/ home / yourname / documents / file8 |
Cuando ejecute el siguiente comando, el archivo zip contendrá los archivos actualizados (archivo4 y archivo5), pero el archivo7 y el archivo8 no se agregarán.
zip nombre de archivo zip -f -r / home / yourname / documents
Cómo eliminar archivos de un archivo comprimido
Así que creó un archivo zip masivo con cientos de archivos y ahora se da cuenta de que hay cuatro o cinco archivos en el archivo zip que no necesita. Sin tener que volver a comprimir todos esos archivos, simplemente puede ejecutar el comando zip con la -re cambiar de la siguiente manera:
zip nombre de archivo zip -d nombre del archivo en el archivo
Por ejemplo, si tiene un archivo en el archivo con el nombre home / documents / test.txt, elimínelo con este comando:
zip nombre de archivo zip -d inicio / documentos / test.txt
Cómo copiar archivos de un archivo zip a otro
Si tiene archivos en un archivo zip y desea copiarlos a otro archivo zip sin extraerlos primero y volver a empaquetarlos, use la -u cambiar.
Supongamos que tiene un archivo zip llamado "variousmusic.zip" con música de varios artistas, uno de los cuales es AC / DC. Puede copiar las canciones de AC / DC del archivo variousmusic.zip en su archivo ACDC.zip usando el siguiente comando:
zip variousmusic.zip -U --out ACDC.zip "Back_In_Black.mp3"
El comando anterior copia el archivo "Back_In_Black.mp3" de variousmusic.zip a ACDC.zip.Si el archivo zip que está copiando no existe, se creará.
Cómo utilizar la concordancia de patrones y tuberías para crear un archivo
El siguiente interruptor es realmente útil porque le permite usar la salida de otros comandos para insertar archivos en su archivo zip. Supongamos que desea crear un archivo llamado lovesongs.zip, que contiene todas las canciones que tienen la palabra amor en el título.
Para encontrar los archivos con amor en el título puedes usar el siguiente comando:
encontrar / inicio / tu nombre / música -nombre * amor *
El comando anterior no es 100% perfecto porque también recoge palabras como "trébol", pero entiendes la idea. Para agregar todos los resultados devueltos del comando anterior a un archivo zip llamado lovesongs.zip, ejecute este comando:
encontrar / inicio / tu nombre / música -nombre * amor * | zip lovesongs.zip - @
Cómo crear un archivo dividido
Si está haciendo una copia de seguridad de su computadora, pero el único medio que tiene disponible para hacer una copia de seguridad es un conjunto de DVD en blanco, entonces tiene una opción. Puede mantener los archivos comprimidos hasta que el archivo zip tenga 4.8 gigabytes y grabar el DVD, o puede crear algo llamado archivo dividido que continúa creando nuevos archivos en un conjunto después de que alcance el límite que especifique.
Por ejemplo:
zip mymusic.zip -r / home / myfolder / Music -s 670m
Cómo personalizar el informe de progreso del proceso de compresión
Hay varias formas de personalizar la salida que aparece mientras se realiza el proceso de compresión.
Los interruptores disponibles son los siguientes:
- -db = muestra cuántos bytes se han comprimido y cuántos quedan para ir
- -dc = muestra un recuento de archivos comprimidos y cuántos quedan para ir
- -dd = muestra puntos por cada 10MB de archivo comprimido
- -d = establece con qué frecuencia aparecen los puntos
- -du = muestra el tamaño sin comprimir de cada archivo
Por ejemplo:
zip myzipfilename.zip -dc -r / home / music
Cómo arreglar un archivo zip
Si tiene un archivo zip que está roto, puede intentar solucionarlo utilizando el -F comando y si eso falla, el FF mando.
Esto es útil si ha creado un archivo dividido usando el -s cambiar, y perdió uno de los archivos de almacenamiento.
Por ejemplo, prueba este primero:
zip -F myfilename.zip --out myfixedfilename.zip
y entonces
zip -FF myfilename.zip --out myfixedfilename.zip
Cómo cifrar un archivo
Si tiene información confidencial que desea almacenar en un archivo zip, use la -mi comando para cifrarlo. Se le pedirá que introduzca una contraseña y que repita la contraseña.
Por ejemplo:
zip myfilename.zip -r / home / wikileaks -e
Cómo mostrar lo que será comprimido
Si sabe que va a crear un archivo grande, asegúrese de que los archivos correctos se agregarán al archivo zip. Puede ver los resultados esperados de un comando zip especificando la -sf cambiar.
Por ejemplo:
zip nombre de archivo.zip -r / inicio / música / -sf
Cómo probar un archivo
Después de hacer una copia de seguridad de los archivos en un archivo zip, es tentador ahorrar espacio en el disco al eliminar los archivos originales. Antes de hacerlo, es una buena idea probar que el archivo zip funciona correctamente.
Puedes usar el -T cambiar para probar que el archivo zip es válido.
Por ejemplo:
zip myfilename.zip -T
La salida de este comando cuando un archivo no es válido puede tener un aspecto similar al siguiente:
- advertencia de zip: falta la firma final, probablemente no sea un archivo zip
Recuerda que puedes probar el comando -F para reparar archivos zip rotos.
Vale la pena señalar que la -T puede producir falsos positivos, ya que dice que un archivo zip está dañado, aunque cuando lo abra, puede extraer todos los archivos.
Cómo excluir archivos
A veces desea excluir ciertos archivos de un archivo zip. Por ejemplo, si copia los archivos de su teléfono o cámara digital, tiene una mezcla de videos e imágenes. Es posible que desee comprimir las fotos en fotos.zip y los videos en videos.zip.
Aquí hay una forma de excluir los videos al crear fotos.zip
zip photos.zip -r / home / photos / -x * .mp4
Cómo especificar el nivel de compresión
Cuando comprime archivos en un archivo zip, el sistema decide si comprimir el archivo o simplemente almacenarlo. Los archivos MP3, por ejemplo, ya están comprimidos, por lo que tiene poco sentido comprimirlos aún más; por lo general se almacenan como está dentro de un archivo zip.
Sin embargo, puede especificar un nivel de compresión entre 0 y 9 para comprimir aún más un archivo. Esto lleva más tiempo, pero puede hacer un ahorro significativo de espacio.
zip myfiles.zip -r / home -5