Linux终端解压压缩文件,如何从终端解压zip文件?

问题描述

刚刚从互联网上下载了一个.zip文件。我想用终端解压文件。什么是正确的方法来做到这一点?

最佳解决方案

如果unzip命令尚未安装在您的系统上,请运行:

sudo apt-get install unzip

安装解压缩实用程序后,如果要解压到特定的目标文件夹,可以使用:

unzip file.zip -d destination_folder

次佳解决方案

您可以简单地使用unzip。

安装它:apt-get install unzip

并使用它:unzip file.zip

第三种解决方案

一个更有用的工具是7z,它可以压缩和解压缩一系列压缩格式,特别是lzma,通常是提供最高压缩率的协议。

该命令安装7z:

sudo apt-get install p7zip-full

该命令列出了zip的内容:

7z l zipfile.zip

该命令提取zip的内容:

7z x zipfile.zip

第四种方案

您可以使用:

unzip file.zip -d somedir

提取到yourpath/somedir

如果你想提取到绝对路径,请使用

sudo unzip file.zip -d /somedir

第五种方案

如果您的目的地与源zip文件相同,则可以简单地执行以下操作:

unzip filename.zip

第六种方案

使用脚本工具:Perl和Python

这里的许多答案都提到了需要安装的工具,但没有人提到过,Ubuntu的两种脚本语言Perl和Python已经提供了所有必要的模块,允许您解压zip文件,这意味着您不需要安装任何东西其他。只需使用下面介绍的两个脚本中的任何一个来完成这项工作。它们很短,如果我们愿意的话,甚至可以压缩成one-liner命令。

Python

#!/usr/bin/env python3

import sys

from zipfile import PyZipFile

for zip_file in sys.argv[1:]:

pzf = PyZipFile(zip_file)

pzf.extractall()

用法:

./pyunzip master.zip

Perl

#!/usr/bin/env perl

use Archive::Extract;

foreach my $filepath (@ARGV){

my $archive = Archive::Extract->new( archive => $filepath );

$archive->extract;

}

用法:

./perlunzip master.zip

第七种方案

以下是我认为有用的选项的详细说明:

Command: unzip -[option] zip-path.

-l List archive files.

-t Test archive files with cyclic redundancy check.

-u update the existing files.

-z archive comment.

第八种方案

我更喜欢bsdtar到unzip /zip。为了提取,它们非常相似:

bsdtar -x -f /one/two/three/four.zip -C /five

unzip /one/two/three/four.zip -d /five

但对于压缩,bsdtar获胜。假设你有这样的输入:

/one/two/three/alfa/four.txt

/one/two/three/bravo/four.txt

并想在zip文件中找到这个:

alfa/four.txt

bravo/four.txt

bsdtar很简单:

bsdtar -a -c -f four.zip -C /one/two/three alfa bravo

zip没有像解压缩一样的-d选项,所以除非先cd,否则无法实现上述目的。

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值