Este tutorial mostra o 7-Zip na linha de comando. Comprimir, extrair, arquivar e optimizar com o executável 7za.exe.
7-Zip é um programa de compressão eficaz.
O programa 7za.exe é utilizado para comprimir, extrair e actualizar ficheiros através da linha de comando. Proporciona uma compressão superior. É de código-fonte aberto. Isto facilita a sua obtenção e utilização.
Start. Primeiro é necessário descarregar o executável de linha de comando 7-Zip, 7za.exe. Este é o exe que irá utilizar para executar comandos em arquivos. Por favor vá a 7-zip.org e obtenha a versão de linha de comando.
Tip: Para conveniência e para não precisar de mudar os caminhos do ambiente, coloque o ficheiro 7za.exe no seu directório de utilizadores.
Next: Abra a consola do Windows e teste o programa 7za.exe com alguns comandos. Escreva o nome 7za.exe e isto irá mostrar.
7-Zip default output7-Zip (A) 4.60 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-19Usage: 7za <command> <archive_name>
Vemos a gramática que precisamos de usar com o 7za.exe. O “comando” é o verbo principal. Em seguida, especifica-se os comutadores opcionais, o nome do arquivo (seja de origem ou de destino) e os ficheiros. O meu directório de utilizadores é “C:\Users\Sam\”.
Comando a. Pode usar o comando “a” com a letra única a. Este comando significa “archive” ou “add”. Utilize-o para colocar ficheiros num arquivo. Tem de especificar o arquivo de destino, e os ficheiros de origem (nessa ordem).
No sistema de teste, o directório C:\Users\Sam contém dois ficheiros (file1.txt e file2.txt). O comando coloca esses dois ficheiros num arquivo, e é necessário digitá-lo no prompt de comando.
C:\Users\Sam>7za a -t7z files.7z *.txt7-Zip (A) 4.60 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-19ScanningCreating archive files.7zCompressing file1.txtCompressing file2.txtEverything is OkC:\Users\Sam>
Tip: Para abrir o seu arquivo, clique com o botão direito do rato sobre ele e seleccione 7-Zip -> Abrir arquivo. A imagem do ecrã mostra os ficheiros comprimidos em files.7z.
Command d. Aqui vemos um exemplo do comando “d” em linhas de comando 7-Zip. Isto significa “apagar” e é utilizado com muito menos frequência. Permite-lhe remover um determinado ficheiro (ou conjunto de ficheiros) de dentro de um arquivo.
Nota: Necessitará disto se utilizar arquivos enormes e necessitará de poupar tempo. Isto é do manual.
7z d archive.zip *.bak -r7z: use executabled: delete filesarchive.zip: delete from this archive*.bak: only match bak files-r: traverse all subdirectories
Tip: Também pode remover um único ficheiro de um arquivo com “d”. Isto é mais útil quando não tem um arquivo sólido.
Command e. Aqui usamos o comando “e” na janela da sua consola. O “e” significa extracto, e significa descompactar ou expandir um arquivo. Deve especificar sempre o arquivo fonte, e pode também especificar um destino.
Info: O comando “e” extrai tudo para um directório especificado. Outro comando “x” pode preservar estruturas de directório em arquivos.
7z e archive.zip7z: executablee: use extract commandarchive.zip: source archive you want to expand
P>P>Perguntas de sobreescrita: 7-Zip irá sempre avisá-lo se houver um ficheiro que precise de sobrescrever para extrair o novo ficheiro.
No entanto: Isto pode ser problemático se estiver a escrever ou a incorporar o 7za.exe. Nesse caso, ver o comando -y switch.
Command l. A seguir, usamos o comando de letra única “l” (letra minúscula ell). O L minúsculo é utilizado para listar o conteúdo dos arquivos e provavelmente não precisará de o utilizar com frequência. Pensei em testá-lo e mostrar um exemplo.
P>Next: Isto mostra a listagem de um arquivo sólido. Os originais são 27216 bytes e 3888 bytes. Eles comprimem até 1030 bytes.
C:\Users\Sam>7za l files.7z7-Zip (A) 4.60 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-19Listing archive: files.7zMethod = LZMASolid = +Blocks = 1Physical Size = 1202Headers Size = 172 Date Time Attr Size Compressed Name------------------- ----- ------------ ------------ ------------------------2008-10-02 15:48:01 ....A 27216 1030 file1.txt2008-10-02 15:47:45 ....A 3888 file2.txt------------------- ----- ------------ ------------ ------------------------ 31104 1030 2 files, 0 folders
Command t. Aqui usamos o comando “t” no programa 7z. Este comando permite testar a integridade dos arquivos. Ele significa “test” e é muito menos útil do que o comando “-t”. Não confunda os dois. Este é usado para diagnóstico.
7z t archive.zip *.doc -r7z: use this executablet: test the specified archivearchive.zip: the archive you want to test*.doc: test all these files in the archive-r: recurse all child directories
Command u. O comando “u” em 7-Zip significa actualização. Este é um comando útil e é óptimo quando se pretende substituir ficheiros antigos no seu arquivo por ficheiros mais recentes. Isto evita a necessidade de descomprimir e recomprimir todo o arquivo.
7z u archive.zip *.doc7z: executable nameu: update commandarchive.zip: archive you want to update files in*.doc: only update these files (Word documents)
Aviso: O comando “u” não funciona com arquivos sólidos. Um arquivo sólido é aquele onde todos os ficheiros são comprimidos em conjunto.
So: Não é possível actualizar ficheiros específicos em arquivos sólidos com o comando “u”. Os arquivos sólidos são limitados.
Switch m. Podemos alterar as definições de optimização em 7-Zip na linha de comando. Esta é a opção mais importante e útil que pode utilizar. Especifica o método de compressão. Aqui mostrarei um monte de opções, e também alguns exemplos.
Níveis de compressão
Compression levelsSwitch -mx0: Don't compress at all. This is called "copy mode."Switch -mx1: Low compression. This is called "fastest" mode.Switch -mx3: Fast compression mode. Will automatically set various parameters.Switch -mx5: Same as above, but "normal."Switch -mx7: This means "maximum" compression.Switch -mx9: This means "ultra" compression. You probably want to use this.
Switch m, avançado. Aqui estão os comutadores do método de compressão avançado (-m). Os três primeiros são normalmente de uso limitado, mas poderá beneficiar de os afinar. A minha experiência é que as optimizações manuais para estas opções não produzem grandes benefícios.
Switch -mfb: Especifica o número de bytes rápidos. Por vezes ajuda com ficheiros “esparsos”. Não se preocupe.
Comutador -mfb: Número de passes para compressão deflacionada. Não se preocupe com isto. Definido automaticamente com níveis.
Switch -md: Isto especifica o tamanho do dicionário. É definido automaticamente, por isso não se preocupe.
Switch -mmt: Habilitar multithreading. Use se tiver quad-core e um enorme arquivo. Especifique “ligado” ou “desligado”. Isto pode ser activado por defeito.
Comando x. Este comando é como “e” excepto que preserva os caminhos completos. Se tiver uma estrutura de directório elaborada ou importante, utilize esta opção. Isto seria muito útil para backups do sistema ou para backups realmente grandes. Aqui está o exemplo syntax.
7z x archive.zip7z: executable namex: use the extract commandarchive.zip: the archive you want to extract all the files from
Switch t type. Aqui mostro como especificar o tipo de arquivo preciso que se pretende criar. Note que pode especificar qualquer nome de arquivo que deseje para qualquer tipo. Mas algumas extensões são recomendadas – são standard.
Type switches Switch: -t7z Format: 7ZExample filename: archive.7z (default option) Switch: -tgzip Format: GZIPExample filename: archive.gzip, archive.gz Switch: -tzip Format: ZIPExample filename: archive.zip (compatible) Switch: -tbzip2 Format: BZIP2Example filename: archive.bzip2 Switch: -ttar Format: TARExample filename: tarball.tar (UNIX and Linux) Switch: -tiso Format: ISOExample filename: image.iso (may not be supported) Switch: -tudf Format: UDFExample filename: disk.udf
Também, o manual 7-Zip fornece alguns exemplos úteis de comutadores de tipo. Mostra os interruptores -tiso e -tudf. Estes não são os mais comuns. Quase todos os exemplos neste documento utilizam -t switches.
7z a -tiso archive.iso7z a -tudf archive.udf7z: executable namea: add to archive-tiso or -tudf: format of archive to createarchive.iso or archive.udf: name of archive to create
Arquivos sólidos. 7z é o único formato de ficheiro em 7-Zip que se pode especificar se o arquivo é sólido ou não. Sólido significa que todos os ficheiros são comprimidos como um só. Torna impossível utilizar o comando “u” para actualizar ficheiros individuais.
Switch -ms=on: Activar o modo sólido. Este é o padrão, pelo que não precisará de o especificar frequentemente.
Switch -ms=off: Desactivar o modo sólido. Útil quando precisa de actualizar ficheiros individuais. Irá reduzir as taxas de compressão normalmente.
7z arquivos. Pode alterar muitos valores e ligar os arquivos 7z, com permutações infinitas. Algumas coisas que pode alterar são tamanhos de dicionários, valores FastBytes, valores MatchFinder, e filtros. Normalmente não precisa de lidar com estes.
PPMd. Com o formato 7z, pode especificar o algoritmo. O PPMd é rápido e eficaz para comprimir ficheiros de texto simples. É ideal para grandes colecções de documentos Word. O PPMd não funciona tão bem em ficheiros contendo dados binários.
PPMd switch -mmem=24b, -mmem=24k, -mmem=24m: Estes controlam a quantidade de memória que se utiliza. São úteis e superiores são normalmente melhores.
PPMd switch -mo=2, -mo=32: Estes especificam a ordem do modelo em PPMd. Não são normalmente úteis.
Quando devo usar PPMd? Deve usar PPMd quando tem um grande corpo de texto. Isto pode incluir HTML ou outra formatação, mas o texto simples deve dominar. Pode melhorar os rácios em cerca de 30% em alguns conjuntos de dados.
Exemplo de comandos. Aqui mostro os comandos de compressão de exemplo do manual 7-Zip. Demonstrei comandos simples no início deste documento. Estes são mais complexos. Utilizamos mais características da linha de comando 7-Zip.
7z a -tzip archive.zip *.jpg -mx07z: name of executablea: add to archive command-tzip: specify a ZIP archive (useful for compatibility)archive.zip: destination archive*.jpg: only add jpg files to archive-mx0: don't compress, just copy useful for already-compressed files
Exemplo do formato 7z. Esta próxima linha de comando mostra como criar um sólido arquivo 7z de ficheiros de programas (executáveis). Utiliza o modo multithreading, o que significa que será rápido numa máquina dual core.
7z a -t7z archive.7z *.exe *.dll -ms -mmt7z: name of executablea: archive command specified-t7z: use 7z file type (less compatible and smaller results)archive.7z: destination archive file*.exe: include all *.exe files in directory in new archive*.dll: include all *.dll files in new archive-ms: create solid archive (default)-mmt: multithread the operation (faster)
Criar arquivo PPMd. O PPMd é um algoritmo extraordinário para compressão de texto e é relativamente novo. Aqui mostro um comando no manual 7-Zip que comprime todos os ficheiros de texto no directório de trabalho. Cria um arquivo PPMd.
Tip: O comando é útil porque normalmente só se quer comprimir ficheiros de texto com PPMd.
PPMd Compression
7z a -t7z archive.7z *.txt -m0=PPMd7z: executable name/patha: add command specified-t7z: use the 7z format (needed for PPMd)archive.7z: destination archive file*.txt: select all text files-mo=PPMd: compress with this algorithm
Switch o. Mostramos o interruptor “o” na linha de comando 7-Zip. Por vezes não se quer extrair para o directório actual. É aqui que -o pode vir a ser útil. Use isto para definir o directório de destino.
7z x archive.zip -oC:\Doc7z: executable namex: extract archive with paths intactarchive.zip: archive to extract files from-oC:\Doc: extract all files to the Doc folder on the C: drive
Switch p. Podemos usar o comutador “-p”, que se refere à palavra “password”. Isto é realmente útil quando se trata de segurança e encriptação. É possível especificar uma palavra-passe na linha de comando. A sintaxe é um pouco funky.
7za a pw.7z *.txt -pSECRET7za: name and path of 7-Zip executablea: add to archivepw.7z: name of destination archive*.txt: add all text files to destination archive-pSECRET: specify the password "SECRET"
Abrir arquivos protegidos por palavra-passe. Esta próxima saída da consola mostra o que acontece quando se tenta abrir o arquivo protegido por palavra-passe. A palavra-passe aqui é SECRET, que permitirá a extracção do arquivo.
C:\Users\Sam>7za x pw.7z7-Zip (A) 4.60 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-19Processing archive: pw.7zEnter password:
Criptografia de cabeçalho: Adicionar -mhe para encriptar cabeçalhos. O comando de senha tratará automaticamente dos cabeçalhos encriptados.
Tip: Lembre-se, os cabeçalhos encriptados irão esconder os nomes dos ficheiros no seu arquivo.
Mais comutadores. Aqui, damos uma olhada mais atenta a mais interruptores que são de utilidade limitada. São úteis para saber, no entanto, se alguma vez precisar de os utilizar. Normalmente pode fazer melhor apenas usando os valores por defeito ligeiramente ajustados às suas necessidades.
Switch -ssc: Especifique o modo sensível a maiúsculas e minúsculas. A predefinição é -ssc- no Windows (insensível). O padrão é -scc em Linux (sensível).
Switch -ssw: Comprimir ficheiros bloqueados. Pode tentar isto se tiver problemas em abrir ficheiros.
Switch -w: Definir directório de trabalho. Pode usar isto quando quiser especificar pastas temporárias.
Case-sensitive. Podemos usar nomes de ficheiros não sensíveis a maiúsculas e minúsculas na linha de comando 7-Zip. Para aqueles que utilizam tanto Linux como Windows, a opção sensível a maiúsculas e minúsculas é útil. Mostrarei aqui o meu próprio exemplo com alguma explicação.
7za.exe a archive.7z Z*.* -ssc7za.exe: 7-Zip command-line executable path and namea: archive commandarchive.7z: add files to this target archiveZ*.*: select only files whose first letter is a capital Z
Switch v. Pode usar o interruptor “v” na linha de comando. Na compressão de dados, um volume é um segmento de um conjunto de dados que tem um certo número de bytes. O interruptor de volume especifica o tamanho exacto em bytes, kilobytes ou megabytes.
Também: Pode especificar volumes sequenciais com o interruptor “v” na linha de comando 7za.exe.
Switch ao. O comutador “ao” permite especificar se pretende escrever por cima de ficheiros antigos. Tenha cuidado – não pode restaurar um ficheiro sobrescrito normalmente. É preciso outro argumento. Faça o backup dos seus dados copiando primeiro os ficheiros no seu gestor de ficheiros.
Switch -aoa: Este comutador substitui todos os ficheiros de destino. Utilize-o quando as novas versões são preferidas.
Switch -aos: Saltar sobre ficheiros existentes sem sobrescrever. Utilize-o para ficheiros onde a versão mais antiga é mais importante.
Switch -aou: Evitar colisões de nomes. Os novos ficheiros extraídos terão um número a anexar aos seus nomes. Terá de lidar com eles mais tarde.
Switch -aou: Renomear os ficheiros existentes. Isto não irá renomear os novos ficheiros, apenas os antigos já existentes.
Example of the switches7z x test.zip -aoa7z: use the 7-zip executablex: use the extract commandtest.zip: extract files from this archive-aoa: overwrite all existing files. risky!
Múltiplos ficheiros. Esta secção aborda a adição de múltiplos ficheiros a um arquivo. Para adicionar muitos ficheiros a um arquivo, use por favor o comando “a” e o símbolo wildcard *. Especificar o nome do ficheiro do arquivo de destino e os ficheiros-fonte depois.
Tip: Por favor leia mais na secção que cobre o comando “a”, encontrada na parte anterior desta página.
Como é que adiciono muitos ficheiros com uma extensão específica? Use o comando “a” e o wildcard *, mas especifique a extensão após o wildcard. Por exemplo, *.txt significa todos os ficheiros de texto. Pode usar o curinga em qualquer lugar.
Como posso adicionar muitos ficheiros de uma subdirectoria inteira? Especifique apenas o nome da directoria. Não é necessário utilizar um curinga. O manual 7-Zip mostra este exemplo de forma útil. Especifica um directório inteiro chamado “subdir”.
7z a -tzip archive.zip subdir\7z: use executablea: add to archive-tzip: use zip compressionarchive.zip: create this archivesubdir\: source directory
Formatos. Esta secção responde a perguntas sobre a escolha de formatos. Primeiro, para usar a compressão GZip, especificar a opção “-tgzip” para o interruptor de tipo. Isto faz uma excelente forma de comprimir ficheiros no seu servidor web para compressão HTTP.
7-Zip DEFLATE
Como é que utilizo BZip2? Pode utilizar o BZip2 especificando o comutador “-tbzip2”. Isto pode ser combinado com qualquer nível de compressão nos gráficos acima. Os diferentes modos em 7-Zip utilizam automaticamente muitas configurações diferentes.
Como utilizo o formato 7z? Especificando o comutador “-t7z” para o tipo. Ou pode simplesmente omitir o interruptor de tipo e isso será por defeito para 7z. Este formato oferece as maiores taxas de compressão, mas não funciona em todos os locais.
Prompts. Pode parar o 7-Zip de exibir avisos. Por favor, use o interruptor -y. Isto assumirá uma resposta afirmativa a todos os avisos. Use isto apenas quando estiver confiante de que não vai perder nenhum dado.
P>Perguntas. Há muitas mais possibilidades e utilizações do programa 7-Zip na linha de comando, tanto no Windows como no Linux. Esta secção responde a algumas perguntas que tive ao fazer esta pesquisa, e também a algumas perguntas que poderá ter.
Por que não posso actualizar o meu arquivo? É provavelmente um arquivo sólido. Os arquivos 7z são, por defeito, arquivos sólidos – todos os arquivos são comprimidos em conjunto. Altere o arquivo para não ser sólido, se quiser actualizá-lo. Procure nesta página por “sólido”.
P>Posso especificar o directório de saída? Sim-por favor use o comando “e” e combine-o com a comutação -o. A sintaxe com -o é um pouco engraçada, por isso vou mostrar o exemplo do ficheiro de ajuda 7-Zip. Eis como funciona.
7z e archive.zip -oC:\soft *.cpp -r7z: executablee: use extract commandarchive.zip: source archive you want to extract from-oC:\soft: the destination folder (-o is the switch and C:\soft is the argument)*.cpp: only extract cpp files (C++)-r: traverse all subdirectories
Como posso ver o que está dentro de um arquivo? Use o comando “l” como mostrado acima. Poderá querer usar “l” num utilitário que corre a partir de uma linha de comando para se certificar de que o seu arquivo de lotes funciona correctamente.
Como posso excluir certos ficheiros? Perto do início vimos como adicionar ficheiros com base em filtros, mas por vezes pretende excluir manualmente certos ficheiros. Use a chave -x, seguida imediatamente com um ponto de exclamação e depois o nome do ficheiro.
So: Se quiser excluir “file1.txt”, utilize a comutação “-x!file1.txt”. Por favor inclua o hífen e a exclamação.
Como posso substituir ficheiros já em disco por novos ficheiros? Utilizando a comutação -ao, descrita acima. Existem outras opções, e normalmente é uma ideia melhor usar uma das opções de renomear (-aou ou -aot).
P>Posso ignorar a extracção de ficheiros já no disco? Sim-por favor especifique a opção -aos, que significa “saltar ficheiros por cima”. Isto fará com que 7za.exe não copie os ficheiros mais recentes para fora do arquivo.
Nota: Use -aos se os seus ficheiros não mudarem ao longo do tempo e a substituição seria apenas um desperdício.
Embed. Pode incorporar o 7-Zip num programa .NET do Windows usando o tutorial no meu artigo sobre .NET 7-Zip. Isto produz a mesma grande compressão mas na sua própria GUI. O link mostra algumas taxas de compressão.
7-Zip Executável
Configurações internas. Pode alterar as configurações internas. Não precisa de o fazer normalmente, uma vez que são definidas automaticamente. Recomendo apenas a utilização das definições mx=0 (e 3, 5, 7, 9). Um estudo aprofundado seria fascinante.
Que valores posso alterar nas configurações internas? Pode alterar os filtros de compressão, que alteram comportamentos em ficheiros executáveis como *.exe e *.dll. Pode activar a compressão de cabeçalho e encriptação (-mhc=on e -mhe=on).
Tip: A compressão de cabeçalho está por defeito activada. A encriptação deve ser explicitamente activada.
AdvanceCOMP. Pode usar o AdvanceCOMP para melhorar os rácios de compressão. A melhoria é frequentemente pequena, inferior a 1%. 7-Zip e AdvanceCOMP usam o mesmo codificador Deflate, mas AdvanceCOMP tem mais opções e é mais fino.
AdvanceCOMP