返回顶部
首页 > 资讯 > 操作系统 >Linux shell命令用法及常见用例之tar命令
  • 902
分享到

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

linuxshelltarshelltar命令linux压缩命令tar 2022-06-04 22:06:29 902人浏览 泡泡鱼
摘要

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

前言

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

-c(–create的简写)参数,这表示为指定的文件或者目录创建新的归档文件。使用-f指定读取或者写入的归档文件,可以用-表示标准输入或者标准输出,-f可以与其他参数连起来写,必须保证f参数后面跟的是文件名。但不推荐这样写,因为参数调换顺序是允许的,如果写成-cfv就会导致压缩后的文件名变成了v。

使用-v表示生成详细的输出,在压缩或者解压的模式中,会列出正在向归档文件读或者写的文件名字。

创建tar.gz归档文件

示例:打包并且使用gzip压缩。

描述:将/home/test/images目录下的所有文件以及目录中的文件打包,并用gzip进行压缩,生成名为MyImages-18-06-02.tar.gz的归档文件,放在当前目录下。


# tar -zcv -f MyImages-18-06-02.tar.gz /home/test/images
OR
# tar -zcv -f MyImages-18-06-02.tar.tgz /home/test/images
/home/test/images/alejandro-gonzalez-17189.jpg
/home/test/images/brooke-lark-275181.jpg
/home/test/images/brenda-godinez-228181.jpg
/home/test/images/artur-rutkowski-97622.jpg
/home/test/images/ben-white-138743.jpg

-z表示要使用gzip支持来压缩或者解压文件,注意gzip的压缩的文件格式最好写成tar.gz。(注:tar.gz 和 tgz 是同一个意思)

打包压缩排除某些文件

示例:打包压缩并排除某些文件。

描述:将/home/test/images目录下,排除brooke-lark-275181.jpg和ben-white-138743.jpg之外的所有文件打包,并用gzip进行压缩,生成名为MyImages-18-06-02.tar.gz的归档文件,放在当前目录下。


# tar -czv -f MyImages-18-06-02.tar.gz --exclude=./brooke-lark-275181.jpg --exclude=./ben-white-138743.jpg /home/test/images
/home/test/images/alejandro-gonzalez-17189.jpg
/home/test/images/brenda-godinez-228181.jpg
/home/test/images/artur-rutkowski-97622.jpg

解压归档文件(默认)

示例:解压,默认解压。

描述:将名为MyImages-18-06-02.tar的归档文件解压至当前目录下。


# tar -xvf MyImages-18-06-02.tar
home/test/images/alejandro-gonzalez-17189.jpg
home/test/images/brenda-godinez-228181.jpg
home/test/images/artur-rutkowski-97622.jpg

其中,-x参数表示去解压一个归档文件,如果归档文件中有两个相同名字的文件,那么每一个文件都会被解压出来,然后最新的会覆盖旧的文件。注意这里没有指定-j参数,因为tar看到指定了-x参数,就知道这是解压操作,会自动判断该解压包的压缩类型。

解压归档文件并指定目录

示例:解压到一个指定目录。

描述:将名为MyImages-18-06-02.tar.gz的归档文件解压至一个指定的目录。


# tar -xv -f MyImages-18-06-02.tar -C /home/test/public_images
home/test/public_images/alejandro-gonzalez-17189.jpg
home/test/public_images/brenda-godinez-228181.jpg
home/test/public_images/artur-rutkowski-97622.jpg

查看压缩包文件信息

示例:查看压缩包文件信息。

描述:列出MyImages-18-06-02.tar.bz2中的文件信息,-v参数,会生成与ls(1)命令相近的输出。


# tar -tv -f MyImages-18-06-02.tar.gz
OR
# tar -tv -f MyImages-18-06-02.tar.bz2
-rw-r--r-- root/root 2176861 2018-06-02 21:26 home/test/images/alejandro-gonzalez-17189.jpg
-rw-r--r-- root/root 8452524 2018-06-02 21:26 home/test/images/brenda-godinez-228181.jpg
-rw-r--r-- root/root 1131986 2018-06-02 21:26 home/test/images/artur-rutkowski-97622.jpg

解压单个文件

示例:解压单个文件。

描述:将home/test/.bashrc这一个文件从归档文件中提取出来。


# tar -xv -f command-18-06-02.tar home/test/.bashrc
home/test/.bashrc

解压多个指定的文件

示例:解压多个指定的文件。

描述:将file1、file2等多个文件从归档文件中提取出来,可以用空格隔开多个文件,也可以用通配符的形式。


# tar -zxv -f MyImages-18-06-02.tar.gz "file 1" "file 2"
OR
# tar -zxv -f MyImages-18-06-02.tar.gz --wildcards '*b*.jpg'
home/test/images/brooke-lark-275181.jpg
home/test/images/brenda-godinez-228181.jpg
home/test/images/ben-white-138743.jpg
home/test/images/aleks-dahlberg-274646.jpg

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

--结束END--

本文标题: Linux shell命令用法及常见用例之tar命令

本文链接: https://lsjlt.com/news/19696.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux shell命令用法及常见用例之tar命令
    前言 tar命令用来归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用gzip或者bzip2等技术进行压缩。 命令格式 tar [OPTION...] [FILE]... 命令功能 Tar(Tap...
    99+
    2022-06-04
    linux shell tar shell tar 命令 linux压缩命令tar
  • Linux下常用命令tar的用法
    本篇内容介绍了“Linux下常用命令tar的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!磁带机操作命令:  &nb...
    99+
    2023-06-13
  • linux命令中的tar命令的用法
    这篇文章主要讲解了“linux命令中的tar命令的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux命令中的tar命令的用法”吧!通过SSH访问服务器,难免会要用到压缩,解压缩,打...
    99+
    2023-06-09
  • Linux tar 命令用法实例详解
    tar 命令可以为linux的文件和目录创建档案。利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建...
    99+
    2022-06-04
    tar命令用法 linux tar 命令
  • linux 命令每天必学之tar命令
    通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具。linux中最流行的tar是麻雀虽小,五脏俱全,功能强大。 tar命令可以为linux的文...
    99+
    2022-06-04
    命令 linux tar
  • Linux 常用命令之Linux more命令使用方法
    more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比。 more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页...
    99+
    2022-06-04
    Linux more命令使用方法 linux more命令
  • Linux常用命令之grep命令用法详解
    1.官方简介 grep是linux的常用命令,用于对文件和文本执行重复搜索任务的Unix工具,可以通过grep命令指定特定搜索条件来搜索文件及其内容以获取有用的信息。 Usage: grep [OPTION].....
    99+
    2022-06-03
    Linux grep命令用法 Linux grep命令
  • Linux常用命令之性能命令
    本文介绍linux常用性能统计分析命令,监控进程或者系统性能。主要包括CPU(top、mpstat)、内存(vmstat、free)、I/O(iostat)、网络性能(sar)、系统日志信息(demsg)、查看进程状态(...
    99+
    2022-06-04
    Linux常用命令 linux性能命令
  • Linux Shell常用的命令
    本篇内容介绍了“Linux Shell常用的命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!很早就想根据自己的学习规律和遗忘规律,自己总结...
    99+
    2023-06-12
  • Linux tar命令怎么用
    本篇文章给大家分享的是有关Linux tar命令怎么用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Linux tar(英文全拼:tape archive )命令用于备份文件。...
    99+
    2023-06-28
  • linux下tar命令的使用范例
    这篇文章主要介绍“linux下tar命令的使用范例”,在日常操作中,相信很多人在linux下tar命令的使用范例问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下tar命令的使用范例”的疑惑有所帮助!...
    99+
    2023-06-13
  • Linux命令之lz4命令使用示例
    目录一、lz4命令简介二、命令使用示例1、查看命令版本2、获取命令帮助3、命令安装4、压缩单个文件5、压缩多个文件6、压缩目录7、压缩后删除源文件8、解压lz4文件9、解压并删除压缩文件10、高压缩比方式压缩11、压缩并...
    99+
    2023-03-15
    Linuxlz4命令 Linuxlz4命令使用 Linuxlz4命令用法
  • Linux中tar命令的使用方法
    Linux中tar命令的使用方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原...
    99+
    2023-06-09
  • Linux下tar命令的用法介绍
    这篇文章主要介绍“Linux下tar命令的用法介绍”,在日常操作中,相信很多人在Linux下tar命令的用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下tar命令的用法介绍”的疑惑有所帮助!...
    99+
    2023-06-12
  • Linux的tar命令怎么用
    这篇文章将为大家详细讲解有关Linux的tar命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。tar命令[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数...
    99+
    2023-06-17
  • Linux中tar命令怎么用
    这篇文章给大家分享的是有关Linux中tar命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux常用命令tar命令 可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份...
    99+
    2023-06-28
  • linux tar命令如何使用
    本篇内容介绍了“linux tar命令如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-02-02
    linux tar
  • 常见的linux命令
    这篇文章主要讲解了“常见的linux命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常见的linux命令”吧!命令cpcp [参数] [源文件或目录] [目标...
    99+
    2023-06-05
  • tar命令与rpm命令怎么在linux中使用
    tar命令与rpm命令怎么在linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一. tar  1.压缩一组文件为tar.gz后缀。  # tar...
    99+
    2023-06-13
  • Linux中常用压缩文件的命令——tar
    一般我们在使用电脑传输邮件到对方邮箱中时,碰到比较大的文件时,通常都会对所要传输的文件进行压缩,然后再传输到对方的邮箱中,这样做是因为压缩文件可以减少文件的大小,使得我们可以既快又方便地将文件传输到对方邮箱中。 ...
    99+
    2023-10-20
    linux 运维 服务器 centos Powered by 金山文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作