Acabei de baixar um .arquivo zip da internet. Eu quero usar o terminal para descompactar o arquivo. Qual é a maneira correta de fazer isso?
Se o unzip
o comando ainda não está instalado no seu sistema e, em seguida, execute:
sudo apt-get install unzip
Depois de instalar o utilitário descompactar, se você deseja extrair para uma pasta de destino específica, você pode usar:
unzip file.zip -d destination_folder
Se os diretórios de origem e destino forem os mesmos, você pode simplesmente fazer:
unzip file.zip
Você pode simplesmente usar unzip
.
Instale-o:
apt-get install unzip
E usá-lo:
cd /path/to/fileunzip file.zip
Uma ferramenta mais útil é 7z
, que fecha e descompacta uma variedade de formatos de compressão, notavelmente lzma
, geralmente o protocolo que oferece as taxas as mais altas da compressão.
Este comando instala 7z
:
sudo apt-get install p7zip-full
Este comando lista o conteúdo do zip:
7z l zipfile.zip
Este comando extrai o conteúdo do zip:
7z x zipfile.zip
Você pode usar:
unzip file.zip -d somedir
para extrair para yourpath/somedir
Se você deseja extrair para um caminho absoluto, use
sudo unzip file.zip -d /somedir
Usando ferramentas de script: Perl e Python
Muitas respostas aqui mencionam ferramentas que requerem instalação, mas ninguém mencionou que duas das linguagens de script do Ubuntu, Perl e Python, já vêm com todos os módulos necessários que permitem descompactar um arquivo zip, o que significa que você não precisa instalar mais nada. Basta usar qualquer um dos dois scripts apresentados abaixo para fazer o trabalho. Eles são bastante curtos e podem até ser condensados em um comando de linha única, se quisermos.
Jiboia
#!/usr/bin/env python3import sysfrom zipfile import PyZipFilefor zip_file in sys.argv[1:]: pzf = PyZipFile(zip_file) pzf.extractall()
Uso:
./pyunzip.py master.zip
ou
python3 pyunzip.py master.zip
Perl
#!/usr/bin/env perluse Archive::Extract;foreach my $filepath (@ARGV){ my $archive = Archive::Extract->new( archive => $filepath ); $archive->extract;}
Uso:
./perlunzip master.zip
ou
perl perlunzip.pl master.zip
Ver
Se os diretórios de origem e destino forem os mesmos, você pode simplesmente fazer:
unzip filename.zip
Eu prefiro bsdtar
para unzip
/zip
. Para extrair, eles são muito semelhantes:
bsdtar -x -f /one/two/three/four.zip -C /fiveunzip /one/two/three/four.zip -d /five
No entanto, para fechar, bsdtar
Vitoria. Digamos que você tenha essa entrada:
/one/two/three/alfa/four.txt/one/two/three/bravo/four.txt
e quero isso no arquivo zip:
alfa/four.txtbravo/four.txt
Isso é fácil com bsdtar
:
bsdtar -a -c -f four.zip -C /one/two/three alfa bravo
zip não tem o -d
opção como descompactar, então você não tem como alcançar o acima, a menos que você cd
primeiro.
Aqui está a descrição detalhada das opções que considero úteis:
Comando: descompacte-[option] zip-path. - d um diretório opcional para o qual extrair arquivos-l Arquivos de arquivo de Lista. -P senha Usar senha para descriptografar entradas zipfile criptografadas(se houver). - t arquivos de arquivo de teste com verificação de redundância cíclica. - U atualizar os arquivos existentes. - z arquivo comentário
Siga estas instruções: http://www.codebind.com/linux-tutorials/unzip-zip-file-using-terminal-linux-ubuntu-linux-mint-debian/
Instalar descompactar
Então, antes de tudo, precisamos instalar o unzip em nosso sistema se ele não estiver instalado. o comando unzip é usado para extrair arquivos do arquivo aZIP.
Execute o seguinte comando para instalar
unzip
sudo apt-get install unzip
unzip
Sintaxe$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile
Agora siga as etapas abaixo:
Descompacte O Ficheiro
Opção 1 - Se o arquivo Zip estiver no mesmo diretório / pasta em que seu terminal está e quisermos extraí-lo no diretório presentworking.
Use o seguinte comando para alcançar o cenário descrito acima
sudo unzip zip_file_name.zip
se o arquivo zip estiver protegido com alguma senha, use o comando following :
sudo ubzip -P zip_file_name.zip
Por favor, certifique-se de usar-P (capital P) não-p porque as opções arediferent.
Opção 2 - Se o arquivo zip não estiver presente no mesmo diretório e quisermos extrair/descompactar o arquivo em um diretório diferente.
Use o seguinte comando para alcançar o cenário descrito acima
sudo unzip path/filename.zip -d another_path_or_same_path
se não usarmos a opção-d, O arquivo será extraído para o diretório presentworking.
E se o arquivo zip estiver protegido por senha, também podemos usar
-P
.use o comando tar no Linux / Unix
tar
é um acrônimo para Tape Archive. o comando tar é usado paramanipula arquivos no Linux / Unix. Os administradores de Sistema usam tarcommand frequentemente para copiar um monte de arquivos ou diretórios para o arquivo highlycompressed que são chamadostarball
outar
,bzip
egzip
em Linux / Unix sistema.sintaxe tar
tar [OPTION...] [FILE]...
Ou
Tar bandeiras necessárias
tar {-r|-t|-c|-x|-u}
bandeiras opcionais do alcatrão
tar {one of the required Flags} [ -d ][-B] [ -F ] [ -E ] [ -i ] [-h ] [ -l ] [ -m ] [ -o ] [ -p ] [ -w] [ -s ] [ -U ] [ -v ][-Number] [-b Blocks] [-f Archive]
Exemplo
Criar arquivo tar compactando um diretório ou um único arquivo
O comando do terminal abaixo criará um
.tar
arquivo chamadosample_dir.tar
com um diretório/home/codebind/sample_dir
ousample_dir
no diretório de trabalho atual.ripon@ripon:~$ tar -cvf sample_dir.tar sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar
Aqui está o que essas bandeiras (-cvf) realmente significam
-c, --create
- criar um novo arquivo
-x, --extract, --get
- extrair arquivos de um arquivo
-f, --file ARCHIVE
- use arquivo de arquivo ou arquivo de dispositivoCriar
tar.gz
outgz
Arquivo compactando um diretório ou um único arquivoO comando do terminal abaixo criará um
.tar.gz
arquivo chamadosample_dir.tar.gz
com um diretório/home/codebind/sample_dir
ousample_dir
no diretório de trabalho atual.Observe que adicionamos flag-z extra ao comando.Aqui está o que theflag-z realmente significa
-z, --gzip, --gunzip --ungzip
- Comprima o arquivo com gzipripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar.gz
O comando abaixo criará um.arquivo tgz. Um isso para notar istar.GZ e tgz são semelhantes.
ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tgz
Comprimindo vários diretórios ou arquivos de uma só vez
Digamos, por exemplo, queremos comprimir o
sample_dir
diretório,ojava_test
diretório, e oabc.py
arquivo para um arquivo tar chamadosample_dir.tar.gz
.Execute o seguinte comando para atingir o objetivo acima.
ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.pysample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputjava_test/java_test/HelloCV.javaabc.pyripon@ripon:~$ lssample_dir java_test abc.py sample_dir.tar.gz
Criar
.bzip2
Arquivo compactando um diretório ou um único arquivoripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$
Observe que adicionamos bandeira extra
-f
ao comando.Aqui está o queA bandeira-f
significar
-f, --file ARCHIVE
- use arquivo de arquivo ou arquivo de dispositivoExtrair
.tar
arquivoPodemos extrair ou desvincular o arquivo compactado usando o comando tar. O comando abaixo extrairá o conteúdo de
sample_dir.tar
para o diretório presente.ripon@ripon:~$ tar -xvf sample_dir.tarsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$
O comando a seguir extrairá ou desvinculará arquivos em specifiedDirectory, ou seja,
/home/codebind/dir_name
neste caso.ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_namesample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$
nós adicionamos bandeira extra
-C
ao comando.Aqui está o que a bandeira-C
significar
-C, --directory DIR
- alterar Para diretório DIR
Extraia todos os arquivos da pasta atual, você pode usar: descompacte \*.postal
@ burtsevyg a barra invertida não é necessária lá. Ele vai fazer Shell tratar '\ * ’ como símbolo estrela literal. Basta usar ’ descompacte*.zip ‘Para fazer shell expandir’ * ’ para todos os arquivos que terminam em .postal
Usar ’ * ’ sozinho não funcionou para mim. Isso causou erros de nome do arquivo não correspondido
. '*'fez o trabalho.
O Ubuntu tem várias ferramentas de compactação/descompactação já instaladas. Execute ‘apropos zip’ no console para a lista completa.
Eu recomendo que você use e aprenda “unar” em vez de um zip específico, a menos que você precise de recursos específicos. "Os formatos de arquivo suportados incluem Zip, Tar-GZip, Tar-BZip2, RAR, 7-zip, LhA, StuffIt e muitos outros formatos antigos e obscuros. ".
Relacionado (para’*.arquivos tgz’): [como descompactar .arquivo tgz usando o terminal?] (command line - How to unzip .tgz file using the terminal? - Ask Ubuntu)