En primer lugar, si no tiene instalado zip, instálelo primero de la siguiente manera:
sudo apt-get install zip
Luego, para simplemente crear un archivo zip:
zip -r compressed_filename.zip foldername
Si desea excluir archivos ocultos:
find /folder_path -path '*/.*' -prune -o -type f -print | zip ~/compressed_filename.zip -@
Exclusión de archivos de un archivo Zip(tomado de http://osxdaily.com/2013/04/30/how-to-exclude-files-from-a-zip-archive/)
Los conceptos básicos de la exclusión de archivos al crear un archivo zip se centran en -x
indicador, que se utiliza para excluir archivos del archivo que coinciden con un nombre o patrón específico. En su forma más básica, se verá así:
zip archive.zip files -x "ExcludeMe"
Lo que significa que puede excluir un solo archivo, digamos que se llama " Nothanks.jpg"
zip archive.zip images/ -x "Nothanks.jpg"
Veamos algunos ejemplos específicos en los que esto es útil.
Excluir .DS_Store Archivos de Archivos Zip
Esto evitará los metadatos de Mac típicamente invisibles .DS_Store
evitar que los archivos se incluyan en un archivo zip, que se incluyen de forma predeterminada:
zip -r archivename.zip archivedirectory -x "*.DS_Store"
Sin embargo, si el directorio incluye subdirectorios, querrá usar otra variación de ese comando para excluir los archivos ds_store de los subdirectorios también:
zip -r archive.zip directory -x "*/\.DS_Store"
Nota: no todos los shells requieren las comillas para que este comando funcione correctamente, pero en el shell bash (el predeterminado para OS X) necesitará usar las comillas para excluir con comodines y patrones.
Excluir Tipos de Archivos Específicos de un Archivo Zip
Con los comodines, también puede excluir todos los archivos de un tipo determinado centrándose en la extensión. Por ejemplo, este comando comprimirá un directorio completo, menos .jpg
file:
zip -r archive.zip directory -x "*.jpg"
Eso podría modificarse para cualquier extensión de archivo o patrón específico que coincida con un nombre de archivo.
Excluir el .git or .Directorio svn de un archivo Zip
Comprimir un directorio, menos .git
y es contenido:
zip -r zipdir.zip directorytozip -x "*.git*"
Comprimir una carpeta, sin incluir el .svn
directorio:
zip -r zipped.zip directory -x "*.svn*"
Excluir Todos los Archivos Ocultos de un Archivo Zip
Dado que se pueden usar patrones y comodines, también puede excluir cualquiera o todos los archivos y carpetas invisibles que se crean con el prefijo de un punto, ya sea un directorio como .svn
o un archivo individual como .bash_profile
o .htaccess
.
zip -r archivename.zip directorytozip -x "*.*"
O para excluir todos los archivos invisibles de todos los subdirectorios:
zip -r archive.zip directory -x "*/\.*"