7z形式的压缩,比ZIP的压缩比,能提高30%~50%。

以Ubuntu为例,如果没有安装7zip,先要安装。或者是Debian上。

$ sudo apt-get install p7zip

注意package的名字是p7zip,因为7是数字不能开头。

安装完看一下这个包都安装了哪些文件:

$ dpkg -L p7zip

/.

/usr

/usr/bin

/usr/bin/7zr

/usr/bin/p7zip

/usr/lib

/usr/lib/p7zip

/usr/lib/p7zip/7zr

/usr/share

/usr/share/doc

/usr/share/doc/p7zip

/usr/share/doc/p7zip/NEWS.Debian.gz

/usr/share/doc/p7zip/README.Debian

/usr/share/doc/p7zip/changelog.Debian.gz

/usr/share/doc/p7zip/copyright

/usr/share/man

/usr/share/man/man1

/usr/share/man/man1/7zr.1.gz

/usr/share/man/man1/p7zip.1.gz

我们看到主要两个bin文件,/usr/bin/7zr和/usr/bin/p7zip,还安装了manual文档。

这里我安装的是轻量版,所以装完使用的程序名是7zr,如果是安装的完全版,程序名是7za。

7zr是一个独立程序。

如果安装完全版以及支持rar的版本,命令如下(rar版可能收费,没试验):

$ sudo apt install p7zip-full p7zip-rar

安装完7zip后,在GUI界面上也可以操作。对7z或zip文件,可以鼠标右键选择解压缩,或者双击打开。

对普通文件或文件夹,选中后,右键也可以选择压缩。

命令行使用方法如下:

使用help命令查看帮助:

$ 7zr --help

或者使用man命令查看详细信息:

$ man 7zr

命令语法格式:

7zr <command> [<switches>... ] <archive_name> [<file_names>... ] [<@listfiles>... ]

添加压缩文件:

$ 7zr a OutputFile files_to_compress

会在当前文件夹生成一个OutputFile.7z的一个压缩文件。

$ 7zr a OutputFile.7z files_to_compress

指定了7z后缀名,就不会再添加7z文件名后缀。和上条命令的结果一样。

解压文件:

使用完整路径的解压:

$ 7zr x file.7z

将所有文件或文件夹都放到一级目录中,

$ 7zr e file.7z

如果指定要解压的文件夹:

$ 7zr x -o./my_folder  file.7z

注意-o后面直接接路径,中间没有空格。

使用List文件指定要压缩的文件列表:

$ cat list.txt

./1.txt

./2.txt

$ ls

1.txt  2.txt list.txt

$ 7zr a  output  @list.txt

$ ls

1.txt  2.txt list.txt output.7z

注意:

在Linux/Unix里,不要直接使用7-zip文件格式来进行文件备份。

因为7-zip并不保存文件的owner/group属性。

如果要备份,请使用tar命令。

备份一个文件夹:

$ tar cf - directory | 7zr a -si directory.tar.7z

提取一个备份文件:

7zr x -so directory.tar.7z | tar xf -

还有,使用通配符*时要注意,在将一个文件夹添加为7zip文件时,不需要使用此通配符,如果要使用,请注意一下结果的区别。

我使用的结果是,使用了*通配符,则在添加压缩文件时,会多包含进来一层。

另外在添加压缩文件时,要注意一下原文件夹里的隐藏文件和隐藏文件夹是否包含进来了,这些内容的名字都是以一个点开头的,比如~/.profile这个文件。

=======================================================

下面介绍一下如何使用zip命令来在linux中解压和压缩zip文件。

Zip文件使用广泛,在Windows,macOS和Linux中,都有工具方便的操作zip文件。

在Linux中,使用zip命令来创建zip压缩文件。

语法如下:

zip OPTIONS ARCHIVE_NAME FILES

要在指定的文件夹内创建zip压缩文件,用户要有写权限。

Zip类型的文件是不支持Linux风格的文件权限管理的,会丢失这些信息。所以zip解压出来的文件,其文件的所有者就是运行zip命令的用户,而不是文件创建时的用户。如果要保留这些文件权限信息,请使用tar命令。

而zip命令,大多数Linux版本中,并没有安装,没装的话先安装:

Ubuntu和Debian:

$ sudo apt install zip

CentOS和Fedora:

$ sudo yum install zip

压缩多个文件或文件夹:

$ zip archivename.zip filename1 filename2 filename3

如果参数里给的归档压缩文件名不是以.zip结尾,则自动加上,但如果名称中含"."则除外,比如想使用自己指定的后缀名时。

如果不想看见信息详情,使用-q选项。

如果要包含子文件夹使用-r选项。

$zip -q archivename.zip filename1 filename2 filename3

$zip -r archivename.zip directory_name1 directory_name2 file1 file1

zip命令支持的模式,可用的压缩模式,valid compression methods are:  store, deflate, bzip2。

deflate是默认的压缩方法,如果判断一个文件没法压缩,则使用store方法,直接将此文件存储到压缩文件里,而不进行压缩处理。

大部分Linux版本中的zip命令还支持bzip2压缩方法,使用-Z选项:

$ zip -r -Z bzip2 archivename.zip directory_name

使用bzip2压缩方法,文件后缀名还是zip,同样的文件,压缩后可能还会变大。

指定压缩级别:

zip命令允许你使用破折号后跟0到9的来指定压缩级别。默认的压缩级别是-6。 当使用-0时,所有的文件都将不经压缩而被存储。-9将强制zip命令对所有文件使用最佳的压缩方式。

比如:

$zip -9 -r archivename.zip directory_name

压缩级别越高,压缩过程的CPU占用就越多,需要更多的时间来完成。

创建密码来保护zip文件:

$zip -e archivename.zip directory_name

然后会提示你输入密码:

Enter password:

Verify password:

创建split zip file:

想象一下,你想把Zip档案存储在一个文件托管服务上,该服务的文件上传大小限制为1GB,而你的Zip档案是5GB。

你可以使用-s选项和指定的大小来创建一个新的分割Zip文件。乘数可以是k(千字节)、m(兆字节)、g(千兆字节)或t(太字节)。

k (kilobytes), m (megabytes), g (gigabytes), or t (terabytes).

$ zip -s 1g -r archivename.zip directory_name

上面的命令会在一组档案达到指定的大小限制后继续创建新档案:

输出:

archivename.zip

archivename.z01

archivename.z02

archivename.z03

archivename.z04

zip命令例子

压缩所有当前文件夹下面的内容:

$ zip archivename *

并包含隐藏文件:

$ zip archivename  .*  *

只包含MP3文件,并不进行压缩:

$ zip -0 archivename  *.mp3

要解压zip文件的话,要使用unzip命令。如果要查看更多的zip命令相关信息,使用man zip,info zip或zip --help命令。

关于unzip

同样的,先安装:

$ sudo apt install unzip

$ sudo yum install unzip

语法:

$ unzip latest.zip

默认模式,unzip会打印出所有解压缩的文件的名字,还有解压结束后的summary。

使用-q选项,省略这些信息。

$unzip -q filename.zip

指定解压的文件夹

使用-d选项:

$sudo unzip filename.zip -d /path/to/directory

如上,我们使用了sudo,所以解压的文件的权限就属于root用户。

如果对指定文件夹有写权限,使用当前用户即可。

解压带密码的文件

$ unzip -P PasswOrd filename.zip

或者不使用-P参数,则会在命令行上提示输入密码。

过滤解压文件

使用-x选项,后面跟空格分隔的文件列表,表明不需要解压的文件:

$ unzip filename.zip -x file1-to-exclude file2-to-exclude

$ unzip filename.zip -x "*.git/*"

解压时直接覆盖

如果解压文件在当前文件夹已存在,使用-o选项,则会直接覆盖而不会提示。

$ unzip -o filename.zip

解压时不覆盖

$ unzip -n filename.zip

已经存在的文件不会被覆盖。

解压多个文件

如果要解压当前文件夹下的多个zip文件,使用下面的正则表达式 regular expression:

$unzip '*.zip'

显示zip文件的内容

$ unzip -l filename.zip

参考:

How to Install and Use 7zip on Ubuntu Linux

https://linuxize.com/post/how-to-zip-files-and-directories-in-linux/

https://linuxize.com/post/how-to-unzip-files-in-linux/

Linux - Ubuntu中使用7zip和zip命令相关推荐

  1. Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理

    Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理 目录 Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理 一.简单介绍 二.常用命令 1. 打开终端 :Ctrl ...

  2. linux/ubuntu中制作deb安装包

    linux/ubuntu中制作deb安装包 由于要制作一个在arm平台上运行的xorg-server-1.12.4版本的安装包,所以需要学习如何制作deb安装包.这里以一个非常小的工程为例,记录制作的 ...

  3. linux系统如何为软件升级,在Linux系统中怎样才能使用一个命令升级所有软件?...

    今天小编要跟大家分享的有关Linux的文章中,是关于在Linux系统中怎样才能使用一个命令升级所有软件,熟悉Linux系统的小伙伴都知道,让我们的 Linux 系统保持最新状态会用到多种包管理器.比如 ...

  4. Ubuntu中常用的解/压缩命令

    Ubuntu中常用的解/压缩命令 一..tar文件 二..tar.tgz文件 三..zip文件 四..rar文件 五..tar.gz文件 六..tgz文件 一..tar文件 # 解压 tar xvf ...

  5. linux系统中如何查看日志 (常用命令)

    linux系统中如何查看日志 (常用命令) cat  tail -f 日 志 文 件 说    明  /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用 ...

  6. 在linux中at 调度出错,linux系统中的调度延迟任务:at 命令

    linux系统中的调度延迟任务:at 命令 主要概念 at命令可以使命令稍后运行 batch命令可以让命令在机器负载较低的情况下运行 可以直接进入命令,或者以脚本形式提交命令 作业中的标准输出用邮件发 ...

  7. php执行who命令,Linux_在Linux系统中使用who和whoami命令获取用户信息,who用法:who [选项]... [ 文件 | - phpStudy...

    在Linux系统中使用who和whoami命令获取用户信息 who用法:who [选项]... [ 文件 | 参数1 参数2 ] 显示当前已登录的用户信息. -a, --all             ...

  8. linux 查看磁盘信息命令行,Linux系统中查看磁盘空间信息的命令

    Linux系统中磁盘空间的信息我们要怎么查看呢?下面由学习啦小编为大家整理了Linux系统中查看磁盘空间信息的命令,希望对大家有帮助! Linux系统中查看磁盘空间信息的命令:一.df -lh 命令 ...

  9. 查看linux网速的命令,Ubuntu中查看网速的命令

    在这里我们要使用Linux系统中的查看网速的命令,指的是查看网卡此时是工作在哪种速度的模式下.因为通常现在的网卡都支持10M/100M/1000M的网速,但是具体的网卡速度工作模式,要根据计算机所处的 ...

  10. linux下查看进度命令,在Linux系统中使用Coreutils Viewer显示命令运行进度

    Coreutils Viewer(cv)是一个简单的程序,它可以用于显示任何核心组件命令(如:cp.mv.dd.tar.gzip.gunzip.cat.grep.fgrep.egrep.cut.sor ...

最新文章

  1. python【数据结构与算法】二分归并模版
  2. 试用SpringBoot创建WEB应用
  3. centos7下的glusterfs的安装与使用
  4. 如何解决Http请求参数中加号变空格问题
  5. educoderpython答案顺序结构程序设计_答案汇总:土木机械类+计算机类
  6. 使用 jQuery Mobile 与 HTML5 开发 Web App (六) —— jQuery Mobile 内容格式
  7. leetcode 11容纳最多水
  8. python自动化测试学习有用吗_python自动化测试学习-UnitTest/PyUnit的用法介绍
  9. Sphinx 使用心得
  10. 怎样利用JDBC启动Oracle 自己主动追踪(auto trace)
  11. 【游戏开发创新】Unity狗屁不通文章生成器阐述点赞的意义,可生成文字长图保存到本地(Unity | 附源码 | Text转Texture长图 | 详细教程)
  12. C语言 16进制与字符串互转函数
  13. 在css表格怎么居中对齐,css居中和对齐方法集锦
  14. 电子信息产业发展研究院副主任杨春立:基于数字孪生的智慧城市顶层设计探索与实践...
  15. 数据库之系统的三级模式结构
  16. unity生涯的开始——太空飞船小游戏制作
  17. 四川大学计算机学院夏令营优秀,2018年四川大学全校各学院保研夏令营通知信息大汇总...
  18. MATLAB与高等数学--极限计算
  19. html表单验证方法,简述HTML交互式表单验证方法
  20. VScode CMake 编写 Boost Asio Chat程序----记录6

热门文章

  1. CefSharp如何获取请求响应头Headers中的数据
  2. 嵌入式c语言 c语言_C和嵌入式C有什么区别?
  3. 学校图书馆座位预约系统微信小程序开发制作介绍
  4. CUDA-NPP图像和视频处理
  5. Guice依赖注入(一)
  6. wepe装系统,u盘装系统
  7. 新宝市场分析近期大涨的抱团板块个股大多高位收阴或者黄昏星的感觉
  8. 吴文俊人工智能科学技术奖十周年颁奖盛典揭晓,100个项目成果摘得中国智能科学技术奖励最高殊荣
  9. mysql查询按照查询名字拼音首字母排序
  10. Substrate之旅3:Substrate是什么