众所周知,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
总结
这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。