tar -c|x|u|r|t[z|j][v] -f <归档文件> [未打包文件]

将多个文件打包为一个归档文件,可以在打包的同时进行压缩。支持的格式为tar(归档)、gz(压缩)、bz2(压缩率更高,比较耗时)

-c 创建
        -x 解包
        -u 更新
        -r 添加
        -t 查看
        -d 比较压缩包内文件和文件
        -A 将tar文件添加到归档文件中
        -z 使用gz压缩格式
        -j 使用bz2压缩格式
        -v 显示过程
        -f <文件名> 归档文件的文件名
        -C <解压路径> 将压缩包中的文件解压到指定目录

[未打包文件] 创建、更新时必须填写

示例:

tar -zcvf xxx.tar.gz xxx/ xxx1 xxx2 xxx3 多个待打包文件以空格分隔
        tar -zcvf xxx.tar.gz /home/user/xxx/ 使用绝对路径打包,解包也使用绝对路径
        tar -zxvf xxx.tar.gz 按相对路径解包到当前目录下,或按绝对路径解包
        tar -zcvf xxx.tar.gz xxx | split -b 1m 打包后,使用split分割为1m大小的多个文件

其它参数

-P 使用绝对路径压缩时,保留根目录“/”
        -W 校验
        -p 还原文件权限
        -w 询问用户
        --totals 统计
        -T <表达式> 处理符合条件的文件
        -X <表达式> 排除符合条件的文件

zip [参数] <压缩包> <源文件>

使用zip格式打包文件
    -r 递归,将指定目录下的所有文件和子目录一并处理
    -S 包含系统和隐藏文件
    -y 直接保存符号连接,而非该连接所指向的文件
    -X 不保存额外的文件属性
    -m 将文件压缩并加入压缩文件后,删除源文件
    -<压缩级别> 1~9,数字越大,压缩率越高
    -F 尝试修复已损坏的压缩文件
    -T 检查备份文件内的每个文件是否正确无误
    -q 不显示指令执行过程
    -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件
    -u 更新压缩包内文件
    -f 更新压缩包内文件。如果符合条件的文件没有包含在压缩包中,则压缩后添加
    -$ 保存第一个被压缩文件所在磁盘的卷标
    -j 只保存文件名称及其内容
    -D 压缩文件内不建立目录名称
    -i <表达式> 压缩目录时,只压缩符合条件的文件
    -x <表达式> 排除符合条件的文件
    -n <文件名后缀> 排除指定文件名后缀的文件
    -b <缓存路径> 指定临时文件目录
    -d <表达式> 从压缩文件内删除指定的文件
    -t <日期时间> 把压缩文件的日期设成指定的日期
    -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同
    -A 调整可执行的自动解压缩文件
    -c 替每个被压缩的文件加上注释
    -z 替压缩文件加上注释
    -k 使用MS-DOS兼容格式的文件名称。
    -l 压缩文件时,把LF字符置换成LF+CR字符。
    -ll 压缩文件时,把LF+CR字符置换成LF字符。

unzip [参数] <压缩文件> [压缩包中将被释放的文件]

解压zip压缩包文件
    -P <密码> zip压缩包的密码
    -d <路径> 指定解压路径
    -n 解压缩时不覆盖原有文件
    -f 覆盖原有文件
    -o 不经询问,直接覆盖原有文件
    -u 覆盖原有文件,并将压缩文件中的其他文件解压缩到目录中
    -l 显示压缩文件内所包含的文件
    -t 检查压缩文件是否正确
    -z 显示压缩包注释
    -Z unzip -Z等于执行zipinfo指令
    -j 不处理压缩文件中原有的目录路径
    -C 压缩文件中的文件名称区分大小写
    -L 将压缩文件中的全部文件名改为小写
    -s 将文件名中的空格转换下划线
    -X 解压缩时保留文件原来的UID/GID
    -q 执行时不显示任何信息
    -v 执行是时显示详细的信息
    -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
    -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
    -a 对文本文件进行必要的字符转换
    -b 不要对文本文件进行字符转换
    -x <表达式> 处理里排除压缩包中的指定文件
    -M 将输出结果送到more程序处理

7z|7za <子命令> [参数] <压缩包> [文件]

子命令
        a 添加
        d 删除
        e 解压
        x 带路径解压
        l 列表查看
        t 测试
        u 更新
    参数
        -m<压缩方式>
        -m0=<压缩算法> 默认使用lzma
        -mx=<1~9> 压缩级别
        -mfb=64 number of fast bytes for LZMA = 64
        -md=<字典大小> 设置字典大小,例如 -md=32m
        -ms=<on|off> 是否固实压缩
        -o<输出目录> 设置输出目录
        -p[密码] 使用密码
        -r[数字] 递归,使用数字定义递归子目录的深度
        -sfx[<模块名称>] 使用自解压模块
        -si 从标准输入设备读入数据
        -so 将数据写入标准输出设备
        -y 所有询问均回答Yes
        -w<工作目录>

rar <子命令> [参数] <压缩包> [文件|文件列表|路径]

子命令
        x 带路径解压
        e 解压到当前目录
        a 将文件添加到压缩包内
        d 从压缩包中删除文件
        u 更新压缩包内文件
        f 更新压缩包内文件,并添加压缩包内不存在的文件
        m 添加并删除源文件
        r 修复
        l 列表查看压缩包内文件信息 lt 更详细信息 lb 简短信息
        c 添加压缩包注释
        cf <文件名> 将文件内容添加为注释
        cw <文件名> 将注释保存为文件
        t 测试压缩包
        rr 添加恢复纪录
        rv 恢复到文件
    参数
        -p<密码> 设置密码
        -m<0~5> 设置压缩级别,数字越大,压缩级别越高

---------------------------------------------------------------------------------------------------------------

gzip
gzip(1) 是GNU的压缩程序。它只对单个文件进行压缩。基本用法如下:
$ gzip filename
程序执行以后,文件名会变成filename.gz,而且一般情况下大小会比原文件要小。注意,程序并不新建一个新的文件filename.gz, 而是将filename变成filename.gz。一般来说,文本文件压缩率会比较高。而那些jpeg图像,mp3等类似文件的压缩率就没有那么好了, 因为它们本来就已经被压缩过了的。这个基本用法考虑了压缩时间和压缩后文件尺寸的平衡问题(译者注:如果要使压缩后的文件更小,就需要用到更多的时间)。 要得到最小文件大小(最大压缩),可以使用如下用法:
$ gzip -9 filename
这样就可以得到gzip能够压缩的最小文件尺寸,但是需要更长的压缩时间。上面的数字越小,压缩就越快,相反压缩率也就越小。

将gzip压缩的文件解压缩,有两个命令可以使用,但实际上它们是同一个程序。只要压缩文件的后缀名被gzip程序认到,它就可以解压缩。后缀名可以是:.gz, -gz, .z, -z, .Z 和 ?Z。可以使用的第一个命令是:
$ gunzip filename.gz
使用上面的命令后,filename.gz会被解压缩并去掉后缀名.gz变成filename。gunzip 实际上是gzip程序的一部分,它跟gzip ?d 这个命令有等同效果。但是我们使用的时候,经常使用gunzip, 因为这个用法似乎更酷些。: ^ )

15.2 bzip2
bzip2(1)是 Slackware Linux里面压缩程序的另一个选择。它的压缩算法不同于gzip。与gzip 相比有其优点,也有一些缺点。bzip2的主要优点在于它压缩后文件的尺寸,对于相同文件,bzip2 压缩后的尺寸几乎总是小于gzip的压缩结果。有些时候,这个差距会相当大。这个优点对于使用小猫下载文件的用户来说表现得尤为突出。需要提醒的是,当在 一些公共ftp 服务器上下载文件时,在.gz和.bz2文件中尽量选择.bz2文件是一种基本的网络礼节,因为这样可以减少服务器的负担以给更多人服务。
bzip2的缺点在于,它占用的CPU的使用率会比gzip更多。这就是说,压缩同一个文件,bzip2要比gzip使用更长的时间,占用更多的CPU资源。所以,当你在两者之中考虑选用哪种压缩程序的时候,需要衡量的是速度和压缩后的文件尺寸哪个对你来说更重要些。

bzip2的使用方法和gzip是一样的,所以我们不再花时间讨论了。像gunzip一样,bunzip2的效果等同于bzip2 ?d。与gzip最大的不同是bzip2使用后缀名.bz2.
$ bzip2 filename
$ bunzip2 filename.bz2
$ gunzip -9 filename

15.3 tar
tar(1)是一个GNU的磁带归档程序。它可以将几个文件或者目录打包压缩成一个文件。这个特点让我们可以压缩整个目录树,而单使用gzip和 bzip2是无法做到的。tar有很多命令行参数,你可以在手册页找到它们。在这一节里,我们只是讨论一下那些经常用到的tar的用法。

tar 最常用的用法是将我们从网站或者ftp上下载的文件解压缩然后在解包。a.tar.gz是我们经常看到的文件名格式,这就是我们通常说的 "tarball",它是先把一些文件用tar打包,然后在用gzip压缩。你也有可能会看到名为a.tar.Z的文件,这也是同样的做法,但是你一般只 会在比较老的Unix 系统里面遇到。
另外,你也会在另外一些地方看到如a.tar.bz2这样文件。Kernel源文件就是用这种格式发布的,为的是可以让文件更小,便于下载。你可能已经猜到,它就是先将一些文件用tar打包,然后再用bzip2压缩。

我们可以将上述格式的文件用tar加一些命令行参数进行解包。-z参数表示在首先运行gunzip将文件解压缩。将一个tarball解包的最常用的用法是:
$ tar -xvzf filename.tar.gz
这里有不少的参数,那么它们各自有什么意思呢?
-x表示提取文件。这是一个非常重要的参数,因为它告诉tar对输入的文件具体怎么处理。在这里,我们要将打包的文件分离还原成打包前的状态。
-v表示详述。加入这个参数让程序将解包出来的每一个文件列出来。如果觉得列出来太烦了,你完全可以把这个参数去掉来关闭这个功能。相反,如果你需要每个解包文件更详细的信息,则可以使用-vv参数。
-z是告诉tar先运行gunzip将文件解压缩。
-f是告诉tar在命令行输入的下一个串字符是需要处理的文件。

上面这个命令也可以用一些其他形式的写法。在比较老的系统里面由于缺少新版本的GNU tar程序,你可能会看到它是写成这样的:
$ gunzip filename.tar.gz | tar -xvf -
这行命令先把文件解压缩,然后把解压的文件对输出到tar程序。gzip可以把其处理完的数据输到标准输出。这里就是把gzip解压缩的文件作为标准输出,然后由管道把文件送到tar程序进行解包。最后的 "-"表示处理标准输入。它将解包后的文件写入磁盘。

还有一种写法是将第一种命令格式的短划线去掉,像这样:
$ tar xvzf filename.tar.gz

你也可能会碰到bzip2压缩的打包文件。在Slackware Linux所带的tar程序版本 可以像gzip压缩的打包文件一样,只是要把参数-z用-j代替:
$ tar -xvjf filename.tar.bz2

这里需要注意的是,tar会把解包的文件放到当前目录。所以如果要把一个放在/tmp目录文件解压缩到你的家目录的话,这里有一些做法可供选择:
选择一,把文件拷贝到家目录,然后解包
选择二,指定需要解包文件的路径
选择三,用-C 参数指定解包后存放文件的路径

$ cd $HOME
$ cp /tmp/filename.tar.gz
$ tar -xvzf filename.tar.gz

$ cd $HOME
$ tar -xvzf /tmp/finename.tar.gz

$ cd /
$ tar -xvzf /tmp/filename.tar.gz -C $HOME

上面所有的命令都是等效的。每一种做法都是把文件解包到你的家目录,源文件则留在原来的地方。

上面讲了那么多用tar解包的命令,现在让我们来看看tar是如何来打包的吧。
在大多数情况下,只需要用参数"-c"代替参数"-x"就可以了:
$ tar -cvzf filename.tar.gz .
在这行命令里面,参数-c是告诉tar来建立一个打包文件;而参数-z是将打包的文件通过gzip程序进行压缩。filename.tar.gz 是你将要建立的文件名。(译者添加:命令行最后的"."是告诉tar将当前目录下的所有文件/文件夹打包)

参数"-f"不是必需的,但是通常来说加上会是一个好主意。如果不加,tar会将数据写到标准输出,这就需要管道将tar输出到另外一个程序,像这样:
$ tar -cv filename.tar . | gpg --encrypt

这行命令把当前目录下的所有文件打包建立一个没有被压缩的tar归档文件,通过管道输出到gpg程序进行加密,让不知道密钥的人无法读到文件内容。

15.4 zip
最后,讨论一下处理zip文件的两个程序。zip文件在Windows世界里面是极为常用的,所以Linux也有相应的程序来处理它们。zip文件的压缩程序叫做zip(1),解压缩程序叫做unzip(1).
$ zip foo *
这行命令会建立一个包涵当前目录所有文件的的zip文件 foo.zip。zip会自动将
.zip后缀名加上,所以我们不需要在命令中加上。你也可以加上一个参数-r使zip将当前目录下的所有文件夹目录也加在zip文件中:
$ zip -r foo *

解压缩文件很简单,像这样:
$ unzip foo.zip
这样会解压缩foo.zip里面的所有文件和文件夹

zip程序还有一些高级应用参数,包括建立自解压包,压缩是保留源文件,调节压缩文件的尺寸等等,在这里就不一一赘述了。如果想了解更多,请查看手册页。

压缩解压:tar zip unzip 7z|7za rar相关推荐

  1. 自动化——自动解压(zip、7z、rar)带密码

    本数据采用第五届"泰迪杯"数据分析技能赛--A题:竞赛作品的自动评判数据 #https://www.pudn.com/news/62b430eddfc5ee1968969bb7.h ...

  2. Linux命令:tar压缩/解压包, zip/unzip

    tar压缩/解压 功能描述 Linux中的tar命令,是解压或者压缩文件 使用方法 解压: tar -xzvf file.tar.gz 压缩: tar -czvf file.tar.gz file/ ...

  3. 2020-10-21 ubuntu 打包解包压缩解压tar gz bz2 tar.Z tgz rar lha格式

    ubuntu 打包解包压缩解压tar gz bz2 tar.Z tgz rar lha格式 一.tar 格式 解包:tar xvf FileName.tar 打包:tar cvf FileName.t ...

  4. linux关于压缩解压tar包

    tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个 ...

  5. Python tarfile模块(压缩解压tar)

    TarFile类对于就是tar压缩包实例 其由member块组成, member块则包括header块和data块. 每个member以TarInfo对象形式描述. 所以TarFile就是TarInf ...

  6. win系统压缩/解压.tar.gz 文件的方法

    一.将文件压缩成.tar.gz 文件 进入到被压缩文件的文件夹,点击右键打开Windows PoweShell,输入下面命令: tar -cvzf file_name.tar.gz "pat ...

  7. linux下文件夹压缩解压.tar , .gz , .tar.gz , .bz2 , .tar.bz2 , .bz , .tar.bz , .zip , .rar

    .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ---------------------- ...

  8. Linux压缩解压tar.gz和zip包命令汇总

    1.tar包和gz包 tar包和gz包是两个不同的文件包,有三种不同后缀..tar .gz .tar.gz tar包:使用tar命令,打包文件或者文件夹,只打包,不压缩 gz包:使用gzip命令,只压 ...

  9. linux tar解压压缩,linux下压缩解压tar 详解

    tar -c|x|u|r|t[z|j][v] -f [未打包文件] 将多个文件打包为一个归档文件,可以在打包的同时进行压缩.支持的格式为tar(归档).gz(压缩). bz2(压缩率更高,比较耗时) ...

最新文章

  1. 基于Flink的在线机器学习系统架构探讨
  2. java读取txt文件中的内容
  3. 3台廉价服务器支撑200万TPS的消息中间件
  4. JavaScript DOM 向文档添加新的元素
  5. sql IFNULL
  6. 武汉专科计算机学校排名2015,武汉前十名的大专:2021武汉职校排名榜
  7. CTF(pwn) 堆利用 之 unlink 介绍
  8. IIS的Windows集成身份验证总结
  9. 2018-2019-1 20165205 20165233 实验二 固件程序设计
  10. 电大计算机考试将网页保存到桌面,电大计算机网考小抄.pdf
  11. 【NOIP2015】【Luogu2615】神奇的幻方(模拟填数)
  12. 机器学习实践笔记(三)时间序列数据预测
  13. Centos7.x 安装Kubernetes(K8s) 1.14.3 nginx 部署 案例
  14. OpenCV(二)---朴素贝叶斯分类器 NormalBayesClassifier
  15. 基于java的高校实习生管理系统
  16. java熄灯问题,枚举算法案例--熄灯问题
  17. WinCC 在线变量绘制趋势图(自定义内部变量-随机数据)
  18. 【音频系列】——MTK6735模块耳机通道外接功放的处理
  19. originPro2021(4)origin导出图片且去除demo水印
  20. 【论文阅读】深度强化学习的攻防与安全性分析综述

热门文章

  1. Git提交合并提交及注释
  2. 智能运维 | 百度自动化运维是怎么做的(上)——概念以及标准从何而来?
  3. 简单的理解unicode和utf-8的关系
  4. 使用DirectSound播放MP3文件
  5. vscode常用插件 - Path Autocomplete
  6. Javaweb google身份宝验证
  7. 数字身份的万亿市场之争才刚开始
  8. Chrome 设置主页无效一直是2345
  9. ESP8266 PMW介绍
  10. 49. 把字符串转换成整数