Há várias maneiras diferentes de compactar arquivos usando a linha de comando do Linux. Este artigo inclui exemplos práticos que mostram como usar o comando zip para compactar e organizar arquivos em seu sistema de arquivos.
Os arquivos compactados são usados quando você precisa economizar espaço e copiar arquivos grandes de um lugar para outro.
Se você tiver 10 arquivos com todos os 100 megabytes de tamanho e precisar transferi-los para um site FTP, a transferência poderá levar um tempo considerável, dependendo da velocidade do processador.
Se você compactar todos os 10 arquivos em um único arquivo compactado e a compactação reduzir o tamanho do arquivo para 50 MB por arquivo, você só precisará transferir metade dos dados.
Como criar um arquivo de todos os arquivos em uma pasta
Imagine que você tenha uma pasta de músicas com os seguintes arquivos MP3:
Prowler da Noite.mp3 |
Amor com fome man.mp3 |
Get It Hot.mp3 |
Caminhe por toda parte.mp3 |
Rodovia para o inferno.mp3 |
Se você quer sangue, você entendeu.mp3 |
Mostrar em chamas.mp3 |
Toque muito.mp3 |
Batendo em volta do mato.mp3 |
Girls Got Rhythm.mp3 |
Este comando simples do Linux que ilustra como criar um arquivo de todos os arquivos na pasta atual chamada ACDC_Highway_to_Hell.zip:
zip ACDC_Highway_to_Hell *
O texto percorre a tela mostrando os arquivos à medida que são adicionados.
Como incluir arquivos ocultos em um arquivo
O comando anterior é bom para arquivar todos os arquivos em uma pasta, mas inclui apenas arquivos que não estão ocultos.
Nem sempre é tão simples assim. Imagine que você queria compactar sua pasta pessoal para que possa fazer o backup em uma unidade USB ou disco rígido externo. Sua pasta inicial inclui arquivos ocultos.
Para compactar todos os arquivos, incluindo os arquivos ocultos em uma pasta, execute o seguinte comando:
zip para casa *. *
Isso cria um arquivo chamado home.zip com todos os arquivos dentro da pasta base.
(Você deve estar na pasta inicial para que isso funcione). O problema com esse comando é que ele inclui apenas os arquivos na pasta inicial e não nas pastas, o que nos leva ao próximo exemplo.
Como arquivar todos os arquivos e subpastas em um arquivo zip
Para incluir todos os arquivos e subpastas em um arquivo, execute o seguinte comando:
zip -r casa.
Como adicionar novos arquivos a um arquivo zipado existente
Se você quiser adicionar novos arquivos a um arquivo existente ou atualizar os arquivos em um arquivo morto, use o mesmo nome para o arquivo morto ao executar o comando zip.
Por exemplo, imagine que você tenha uma pasta de músicas com quatro álbuns e crie um arquivo chamado music.zip para manter como um backup. Agora imagine que uma semana depois você baixe dois novos álbuns. Para adicionar os novos álbuns ao arquivo zip, basta executar o mesmo comando zip que você fez na semana anterior.
Para criar o arquivo de música original, execute o seguinte código:
zip -r music / home / yourname / music /
Para adicionar novos arquivos ao arquivo, execute o mesmo comando novamente.
Se o arquivo zip tiver uma lista de arquivos nele e um dos arquivos no disco tiver sido alterado, o arquivo corrigido será atualizado no arquivo zip.
Como atualizar os arquivos existentes em um arquivo zipado
Se você tiver um arquivo zip que deve conter os mesmos nomes de arquivo todas as vezes e desejar atualizar esse arquivo com as alterações feitas nesses arquivos, o -f switch ajuda você a fazer isso.
Por exemplo, imagine que você tenha um arquivo compactado com os seguintes arquivos:
/ home / yourname / documents / file1 |
/ home / yourname / documents / file2 |
/ home / yourname / documents / file3 |
/ home / yourname / documents / file4 |
/ home / yourname / documents / file5 |
/ home / yourname / documents / file6 |
Agora imagine que durante a semana, você adicionou dois novos arquivos e alterou dois arquivos para que a pasta / home / yourname / documents agora se pareça com isto:
/ home / yourname / documents / file1 |
/ home / yourname / documents / file2 |
/ home / yourname / documents / file3 |
/ home / yourname / documents / file4 (atualizado) |
/ home / yourname / documents / file5 (atualizado) |
/ home / yourname / documents / file6 |
/ home / yourname / documents / file7 |
/ home / yourname / documents / file8 |
Quando você executar o comando a seguir, o arquivo zip conterá os arquivos atualizados (file4 e file5), mas file7 e file8 não serão adicionados.
zip zipfilename -f -r / home / seunome / documentos
Como excluir arquivos de um arquivo zipado
Então você criou um enorme arquivo zip com centenas de arquivos e agora percebe que existem quatro ou cinco arquivos no arquivo zip que você não precisa. Sem ter que zipar todos esses arquivos novamente, você pode simplesmente executar o comando zip com o -d alternar da seguinte maneira:
zip zipfilename -d nome do arquivo no arquivo
Por exemplo, se você tiver um arquivo no arquivo morto com o nome home / documents / test.txt, exclua-o com este comando:
zip zipfilename -d home / documents / test.txt
Como copiar arquivos de um arquivo zip para outro
Se você tiver arquivos em um arquivo zip e desejar copiá-los para outro arquivo zip sem extraí-los primeiro e rezipá-los, use o -você interruptor.
Suponha que você tenha um arquivo zip chamado "variousmusic.zip" com músicas de vários artistas, um dos quais é AC / DC. Você pode copiar as músicas do AC / DC do arquivo variousmusic.zip para o seu arquivo ACDC.zip usando o seguinte comando:
zip variousmusic.zip -U --out ACDC.zip "Back_In_Black.mp3"
O comando acima copia o arquivo "Back_In_Black.mp3" de variousmusic.zip para ACDC.zip.Se o arquivo zip que você está copiando não existir, ele será criado.
Como usar correspondência e tubulação de padrões para criar um arquivo
O próximo switch é realmente útil porque permite usar a saída de outros comandos para inserir arquivos no seu arquivo zip. Suponha que você queira criar um arquivo chamado lovesongs.zip, que contém todas as músicas que têm a palavra amor no título.
Para encontrar os arquivos com amor no título, você pode usar o seguinte comando:
encontre / home / yourname / Music -name * love *
O comando acima não é 100% perfeito porque também pega palavras como "trevo", mas você entende. Para adicionar todos os resultados retornados do comando acima a um arquivo zip chamado lovesongs.zip, execute este comando:
encontre / home / yourname / Music -name * love * | zip lovesongs.zip - @
Como criar um arquivo dividido
Se você estiver fazendo o backup do seu computador, mas a única mídia disponível para backup é um conjunto de DVDs em branco, então você tem uma escolha. Você pode manter os arquivos zipados até que o arquivo zip seja de 4,8 gigabytes e gravar o DVD, ou você pode criar um arquivo chamado split, que mantém a criação de novos arquivos em um conjunto após atingir o limite especificado.
Por exemplo:
zip mymusic.zip -r / home / myfolder / Música -s 670m
Como personalizar o relatório de progresso do processo de compactação
Existem várias maneiras de personalizar a saída que aparece enquanto a compactação está em andamento.
Os switches disponíveis são os seguintes:
- -db = exibe quantos bytes foram compactados e quantos são enviados
- -dc = exibe uma contagem de arquivos compactados e quantos são enviados
- -dd = exibe pontos para cada 10MB de arquivo que foi compactado
- -ds = define com que frequência os pontos aparecem
- -du = exibe o tamanho não compactado de cada arquivo
Por exemplo:
zip myzipfilename.zip -dc -r / home / music
Como consertar um arquivo zip
Se você tem um arquivo zip que está quebrado, você pode tentar corrigi-lo usando o -F comando e se isso falhar, o FF comando.
Isso é útil se você criou um arquivo dividido usando o -s mudar, e você perdeu um dos arquivos.
Por exemplo, tente este primeiro:
zip -F myfilename.zip --out myfixedfilename.zip
e depois
zip -FF myfilename.zip --out myfixedfilename.zip
Como criptografar um arquivo
Se você tiver informações confidenciais que deseja armazenar em um arquivo zip, use o -e comando para criptografá-lo. Você é solicitado a digitar uma senha e a repetir a senha.
Por exemplo:
zip myfilename.zip -r / home / wikileaks -e
Como mostrar o que será compactado
Se você sabe que vai criar um arquivo grande, certifique-se de que os arquivos corretos serão adicionados ao arquivo zip. Você pode ver os resultados esperados de um comando zip especificando -sf interruptor.
Por exemplo:
zip myfilename.zip -r / home / music / -sf
Como testar um arquivo
Depois de fazer backup de arquivos em um arquivo zip, é tentador economizar espaço em disco excluindo os arquivos originais. Antes de fazer isso, é uma boa ideia testar o arquivo zip corretamente.
Você pode usar o -T mude para testar se o arquivo zip é válido.
Por exemplo:
zip myfilename.zip -T
A saída deste comando quando um arquivo é inválido pode ser algo como:
- aviso zip: assinatura final ausente - provavelmente não é um arquivo zip
Lembre-se de que você pode tentar o comando -F para corrigir arquivos zip quebrados.
Vale a pena notar que o -T pode produzir falsos positivos, pois diz que um arquivo zip está corrompido, mesmo quando você o abre, você pode extrair todos os arquivos.
Como excluir arquivos
Às vezes você quer excluir certos arquivos de um arquivo zip. Por exemplo, se você copiar os arquivos do seu telefone ou câmera digital, terá uma mistura de vídeos e imagens. Você pode querer zipar as fotos para photos.zip e vídeos para videos.zip.
Aqui está uma maneira de excluir os vídeos ao criar photos.zip
zip photos.zip -r / home / photos / -x * .mp4
Como especificar o nível de compactação
Quando você compacta arquivos em um arquivo zip, o sistema decide se deseja compactar o arquivo ou apenas armazená-lo. Os arquivos MP3, por exemplo, já estão compactados, portanto, não há muito sentido em compactá-los ainda mais; eles geralmente são armazenados como dentro de um arquivo zip.
Você pode, no entanto, especificar um nível de compactação entre 0 e 9 para compactar um arquivo ainda mais. Isso leva mais tempo para ser feito, mas pode economizar muito espaço.
zip myfiles.zip -r / home -5