Em primeiro lugar, se você não instalou o zip, instale-o primeiro da seguinte maneira:
sudo apt-get install zip
Então, para simplesmente criar um arquivo zip:
zip -r compressed_filename.zip foldername
Se você deseja excluir arquivos ocultos:
find /folder_path -path '*/.*' -prune -o -type f -print | zip ~/compressed_filename.zip -@
Excluindo arquivos de um arquivo Zip(retirado do http://osxdaily.com/2013/04/30/how-to-exclude-files-from-a-zip-archive/)
Os fundamentos da exclusão de arquivos ao criar um arquivo zip estão centrados em torno do -x
sinalizador, que é usado para excluir arquivos do arquivo que correspondem a um nome ou padrão específico. No que é mais básico, ele vai olhar como este:
zip archive.zip files -x "ExcludeMe"
O que significa que você pode excluir um único arquivo, digamos que ele tenha o nome "Nothanks.jpg"
zip archive.zip images/ -x "Nothanks.jpg"
Vamos cobrir alguns exemplos específicos em que isso é útil.
Excluir .DS_Store Arquivos de arquivos Zip
Isso impedirá que os metadados do Mac normalmente invisíveis .DS_Store
arquivos de serem incluídos em um arquivo zip, que são agrupados por padrão:
zip -r archivename.zip archivedirectory -x "*.DS_Store"
Se o diretório incluir subdiretórios, no entanto, você desejará usar outra variação desse comando para excluir os arquivos ds_store dos subdiretórios também:
zip -r archive.zip directory -x "*/\.DS_Store"
Nota: nem todos os shells exigem as aspas para que este comando funcione corretamente, mas no shell bash (o padrão para OS X) você precisará usar as aspas para excluir com curingas e padrões.
Excluir tipos de arquivo específicos de um arquivo Zip
Com curingas, você também pode excluir todos os arquivos de um determinado tipo, concentrando-se na extensão. Por exemplo, este comando irá compactar um diretório inteiro, menos qualquer .jpg
arquivo:
zip -r archive.zip directory -x "*.jpg"
Isso pode ser modificado para qualquer extensão de arquivo ou padrão específico correspondente em um nome de arquivo.
Excluir o.git ou .diretório svn de um arquivo Zip
Zip um diretório, menos .git
e é conteúdo:
zip -r zipdir.zip directorytozip -x "*.git*"
Compactar uma pasta, sem incluir o .svn
Directorio:
zip -r zipped.zip directory -x "*.svn*"
Excluir todos os arquivos ocultos de um arquivo Zip
Como padrões e curingas podem ser usados, Você também pode excluir qualquer ou todos os arquivos e pastas invisíveis que são feitos assim sendo prefixados com um ponto, seja um diretório como .svn
ou um arquivo individual como .bash_profile
ou .htaccess
.
zip -r archivename.zip directorytozip -x "*.*"
Ou para excluir todos os arquivos invisíveis de todos os subdiretórios:
zip -r archive.zip directory -x "*/\.*"