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

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

众所周知,tar命令是用来打包、解包、压缩的。下面的文章主要介绍Linux shell命令的用法以及常见用例中tar命令的相关信息。通过示例代码非常详细的介绍,有需要的朋友可以参考参考。让我们跟着边肖学。

前言

tar命令用于将多个文件或目录归档到单个归档文件中,归档文件可以通过gzip或bzip2等技术进一步压缩。

命令格式

焦油[选项.][文件].

命令功能

Tar(Tape ARchive,Tape ARchive的缩写,最初是为了在磁带上打包文件而设计的,现在多用于备份某个分区或一些重要的目录)是类Unix系统中使用最广泛的命令,它用于将多个文件或目录归档到单个归档文件中。存档文件可以通过gzip或bzip2等技术进一步压缩,并且可以保留其文件权限。换句话说,tar命令也可以用于备份:首先将多个文件和目录归档到单个tar文件或归档文件中,然后在需要时释放tar文件中的文件和目录。

命令选项

选择权

意义

-A或-链式

将文件添加到作为存在的备份文件。

-乙

设置块大小

-c或-创建

创建新的备份文件

-C目录

该选项用于解压缩。要在特定目录中解压缩,可以使用此选项。

-d

记录差异

-x或- extract或- get

从备份文件恢复文件

-t或- list

列出备份文件的内容。

-z或- gzip或- ungzip

用gzip指令处理备份文件

-Z或-压缩或-解压缩

使用compress命令处理备份文件

-f备份文件或file=备份文件

指定备份文件。

-v或-详细

显示指令执行过程

-r

向压缩文件中添加文件。

-你

向现有压缩文件中添加了已更改的文件和现有文件。

-j

支持bzip2解压缩文件

-v

显示操作过程

-我

文件系统边界设置

-k

保留原始文件而不覆盖。

-m

保留的文件不会被覆盖。

-w

确认压缩文件的正确性。

-p或相同权限

用原始文件权限还原文件。

-P或-绝对名称

使用文件名的绝对名称,不要删除文件名前的“/”符号。

同-EN

format ornewer=datetime Only在指定日期之后更新的文件将保存到备份文件中。

exclude=模板样式

排除与模板样式匹配的文档

什么是“文件压缩”?

我们知道,在计算机系统中,文件的内容是信息,信息实际上是由值0和1组成的位(也叫比特)序列。八位组成一组,称为字节。一般来说,一个字节的8位没有被充分利用。这些未使用的位占用了文件的大部分空间,“文件压缩”就是利用复杂的计算方法来释放这些未使用的空间,从而使文件占用的空间变小。

简单来说,“压缩”就是填充文档中没有完全填充的空间。操作系统不能直接使用压缩文件。因此,“解压缩”是指将文件“恢复”到未压缩状态。文件压缩前后所占磁盘空间的比值,就是“压缩比”。

常见的压缩格式

Linux 中常见的压缩格式有:

*.z:由压缩程序压缩的文件。

*.gz:由gzip程序压缩的文件。

* .bz2:文件压缩*.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 }[选项…]-f目标源

add:tar {-r |-u }-f source[option…]destination

unzip:tar {-t |-x }-f source[option…]-CD destination

使用tar最简单的方法是记住以下方法:

compression: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一样创建一个新的归档文件,但这是在append模式下,只能追加到未压缩的归档文件中。-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:打包压缩时,不要打包文件。

打包并创建归档文件

示例:打包一个目录。

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

# command-18-06-02.tar/首页/测试

/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/主页/测试/图像

运筹学

# tar-zcv-f my images-18-06-02 . tar . tgz/home/test/images

/home/test/images/亚历杭德罗-冈萨雷斯-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排除=。/Brooke-lark-275181 . jpg-exclude=。/Ben-white-138743 . jpg/home/test/images

/home/test/images/亚历杭德罗-冈萨雷斯-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

主页/测试/图片/亚历杭德罗-冈萨雷斯-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的归档文件解压缩到指定的目录。

# MyImages-18-06-02.tar-C/home/test/public _ images

home/test/public _ images/亚历杭德罗-冈萨雷斯-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)命令的输出。

# MyImages-18-06-02.tar.gz电视台

运筹学

# tar-TV-f my images-18-06-02 . tar . bz2

-rw-r-r-root/root 2176861 2018-06-02 21:26首页/测试/图片/亚历杭德罗-冈萨雷斯-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住宅/测试/。bashrc

home/test/。bashrc

解压多个指定的文件

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

描述:file1、file2等文件是从存档文件中提取出来的,可以用空格分隔,也可以用通配符的形式分隔。

# tar-zxv-f MyImages-18-06-02.tar.gz 文件1 文件2

运筹学

# tar-zxv-f MyImages-18-06-02.tar.gz-通配符 *b*。 jpg

首页/测试/图片/布鲁克-拉克-275181.jpg

home/test/images/Brenda-godinez-228181 . jpg

首页/测试/图片/ben-white-138743.jpg

home/test/images/aleks-Dahl Berg-274646 . jpg

总结

这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

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