Compacte tudo no diretório atual

84

Eu gostaria de compactar e empacotar tudo, incluindo arquivos e pastas no diretório atual, em um único arquivo ZIP no Ubuntu.

Qual seria o comando mais conveniente para isso (e o nome da ferramenta necessária para instalação, se houver)?

Editar: E se eu precisar excluir uma pasta ou vários arquivos?

Terry Li
fonte

Respostas:

103

Instale zipe use

zip -r foo.zip .

Você pode usar os sinalizadores -0(nenhum) para -9(melhor) para alterar a taxa de compactação

A exclusão de arquivos pode ser feita através do -xsinalizador. Na página de manual:

-x files
--exclude files
          Explicitly exclude the specified files, as in:

                 zip -r foo foo -x \*.o

          which  will  include the contents of foo in foo.zip while excluding all the files that end in .o.  The backslash avoids the shell filename substitution, so that the name matching
          is performed by zip at all directory levels.

          Also possible:

                 zip -r foo foo [email protected]

          which will include the contents of foo in foo.zip while excluding all the files that match the patterns in the file exclude.lst.

          The long option forms of the above are

                 zip -r foo foo --exclude \*.o

          and

                 zip -r foo foo --exclude @exclude.lst

          Multiple patterns can be specified, as in:

                 zip -r foo foo -x \*.o \*.c

          If there is no space between -x and the pattern, just one value is assumed (no list):

                 zip -r foo foo -x\*.o

          See -i for more on include and exclude.
SkaveRat
fonte
+1 E se eu quiser excluir alguma pasta ou arquivo?
Terry Li
1
@TerryLiYifeng Eu editei minha resposta com informações sobre isso
SkaveRat 21/11
18

Acho que muitas pessoas que acessam o Google via essa questão querem dizer "arquivar e compactar" quando escrevem "zip". Uma alternativa ao formato zip é tar :

tar -czf copy.tar.gz whatever/

onde o arquivo compactado será copy.tar.gz e o conteúdo estará tudo na pasta.

 -c, --create
       create a new archive
 -z, --gzip, --gunzip --ungzip
 -f, --file ARCHIVE
       use archive file or device ARCHIVE
Martin Thoma
fonte
1
Para xz, a opção é--J or --xz
Anwar