首页服务器Linux服务器 Linux shell命令用法及常见用例之tar命令

Linux shell命令用法及常见用例之tar命令

前言 tar命令用来归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用gzip或者bzip2等技术进行压缩。 命令格式 tar [OPTION...] [FILE]... 命令功能 Tar(Tape…

前言

tar命令用来归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用gzip或者bzip2等技术进行压缩。

命令格式

tar [OPTION...] [FILE]...

命令功能

Tar(Tape ARchive,磁带归档的缩写,最初设计用于将文件打包到磁带上,现在大都使用它来实现备份某个分区或者某些重要的目录)是类Unix系统中使用最广泛的命令,用于归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用gzip或者bzip2等技术进行压缩,还能保留其文件权限。换言之,tar命令也可以用于备份:先是归档多个文件和目录到一个单独的tar文件或归档文件,然后在需要之时将tar文件中的文件和目录释放出来。

命令选项

 

选项 含义
-A或–catenate 新增文件到以存在的备份文件
-B 设置区块大小
-c或–create 建立新的备份文件
-C<目录> 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
-d 记录文件的差别
-x或–extract或–get 从备份文件中还原文件
-t或–list 列出备份文件的内容
-z或–gzip或–ungzip 通过gzip指令处理备份文件
-Z或–compress或–uncompress 通过compress指令处理备份文件
-f<备份文件>或–file=<备份文件> 指定备份文件
-v或–verbose 显示指令执行过程
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-j 支持bzip2解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-w 确认压缩文件的正确性
-p或–same-permissions 用原来的文件权限还原文件
-P或–absolute-names 文件名使用绝对名称,不移除文件名称前的“/”号
-N <日期格式>或–newer=<日期时间>只将较指定日期更新的文件保存到备份文件里
–exclude=<范本样式> 排除符合范本样式的文件

 

 

什么是“文件压缩”?

我们知道,在计算机系统中文件的内容是信息,信息实际上就是一个由值0和值1组成的位(又称为比特)序列,8个位被组织成一组,称为字节。一般来说,一个字节的8位是没有被全部利用起来的,这些没有被利用的位占据了一个文件的大部分空间,而“文件压缩”就是利用复杂的计算方式,将这些没有利用的空间腾出来,以让文件占用的空间变小。

简单来说,「压缩」就是把文件中没有完全填满的空间填满。压缩过的文件不能直接被操作系统所使用,因此,「解压缩」就是指把文件「还原」为未压缩之前的模样。压缩前与压缩后的文件所占用的磁盘空间大小之比就是「压缩比」。
常见的压缩格式

Linux 中常见的压缩格式有:

*.Z:compress 程序压缩的文件。
*.gz:gzip 程序压缩的文件。
*.bz2:bzip2 程序压缩的文件。
*.tar:tar 程序打包的数据,没有被压缩过。
*.tar.gz(简写为 .tgz):tar 程序打包的数据,经过 gzip 的压缩。
*.tar.bz2(简写为 .tbz2):tar 程序打包的数据,经过 bzip2 的压缩。

上面的压缩格式中,主要是gzip和bzip2两个压缩命令,它们是GNU计划的中的一部分,在此之前是compress命令,但它已经不再流行了。bzip2比gzip的压缩比很好,不过bzip2通常只能针对一个文件来压缩和解压缩。如果是这样的话,压缩整个开发环境目录就太繁琐了。

因此tar命令就出现了,tar不是一个 “压缩命令”,而是一个“打包命令”。也就是说,tar可以把很多文件「打包」成一个文件,甚至连目录也可以进行打包。一开始tar命令的确是不支持压缩的功能,后来GNU计划为了提供给使用者更方便并且更加强大的压缩与打包功能,就把整个tar与压缩的功能结合在一起了。

仅仅打包起来的tar文件俗称tarfile文件,经过压缩的tar文件叫做tarball文件。

全能的 tar 命令

概要

tar可以将多个目录或文件打成一个大文件,同时支持gzip/bzip2

归档:tar {-c} [option…] -f destination source

追加归档:tar {-r | -u} -f source [option…] destination

解压:tar {-t | -x} -f source [option…] -C destination

最简单的使用 tar 只要记住下面的方式:

  • 压缩:tar -jcv -f filename.tar.bz2 被压缩的文件或目录名称
  • 查看文件:tar -jtv -f filename.tar.bz2
  • 解压缩:tar -jxv -f filename.tar.gz -C 解压到哪里

filename.tar.bz2 既然tar不是一个压缩命令,是个打包命令,那么是如何做到打包并压缩的呢?我们先来看一下tar命令的常用参数:

模式参数

  • -c(–create):创建新的归档文件。
  • -r(–append):与-c一样创建新的归档文件,但这是以追加的模式,只能往未压缩过的归档文件中追加,要求指定-f参数。
  • -t:查看归档文件的内容含有哪些文件,可以看到包括文件名在内的详细信息。
  • -u:与-r一样,但是只往归档文件添加更新的文件。
  • -x:解压缩归档文件。如果一个归档文件里有相同文件名的多个文件,那么会先将每个文件解压,最新的文件将覆盖旧的文件。

tar分为三种模式,-c,-r,-u三个一类,为归档/压缩模式,在该模式下,tar会递归遍历指定目录下的所有目录和文件,并创建归档文件。-x表示为去归档/解压模式,-t表示为打印列表模式。

通用参数

  • -j:使用bzip2的支持进行压缩和解压缩,文件名最好为*.tar.bz2。
  • -z:使用gzip的支持进行压缩和解压缩,文件名最好为*.tar.gz。
  • -v:在压缩/解压缩的过程中,将正在处理的文件名显示出来。
  • -f:后面接被处理的文件名,最好把-f单独出来写一个参数。
  • -C:指定解压的目录。
  • -p:保留文件的原始信息,权限等等
  • -P:解压时保留绝对路径。
  • –exclude=FILE:在打包压缩的时候,不要将FILE打包。

打包并创建归档文件

示例:打包一个目录。

描述:将/home/test这个目录打包,生成文件名为command-18-06-02.tar的归档文件,保存在当前目录下。

# tar -cv -f command-18-06-02.tar /home/test/home/test/.bash_logout/home/test/.bashrc/home/test/apache-tomcat-9.0.7.tar.gz/home/test/.bash_profile/home/test/nginx-1.10.1.tar.gz
本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/fwq/Linux/9385.html
上一篇Linux CentOS下安装Tomcat9及web项目的部署
下一篇 Linux修改hostname与免密码登录的方法
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部