一、概述
Linux中的tar命令是一个非常强大的工具,用于打包和解压文件。它可以将多个文件和目录合并成一个文件(称为归档文件),也可以对归档文件进行压缩和解压缩,以节省存储空间和提高传输效率。
二、基本概念
归档(Archiving):将多个文件和目录合并成一个文件的过程。
压缩(Compression):通过特定的算法减少文件大小的过程。
三、tar命令的基本语法
1、基本语法
tar [options] [file(s)] 或 tar [选项] [归档文件名] [文件或目录...]
2、常用选项
tar的常用选项如下:
-c: 创建新的归档文件。
-x: 解开已有的归档文件。
-t: 列出归档文件的内容。
-f: 指定归档文件名。
-v: 显示详细的过程。
-p: 保留原始文件的权限和其他属性。
-z: 使用 gzip 压缩或解压归档文件。
-j: 使用 bzip2 压缩或解压归档文件。
-J: 使用 xz 压缩或解压归档文件。
-u: 更新归档文件,只添加那些比归档中的副本新的文件。
-a: 自动选择压缩方式(根据归档文件扩展名 .gz, .bz2 或 .xz)。
-C: 指定解压文件的目标目录。
-P 或 -p: 使用绝对路径而不是相对路径。
四、用法和示例
1. 创建归档文件(压缩)
(1)用法
-c:创建一个新的归档文件。
-v:在处理过程中显示详细信息(verbose模式)。
-f:指定归档文件的名称(file选项)。注意,-f选项必须紧跟归档文件名,且归档文件名必须在所有文件名和目录名之前。
示例
tar -cvf archive0802.tar file1.txt dir1/
2. 解压缩归档文件(解压)
(1)用法
-x:从归档文件中提取文件。
同样使用-v和-f选项来显示详细信息和指定归档文件名。
tar -xvf archive0802.tar
可以看出,解压结果跟原来文件和目录一样,
3.查看归档文件内容
(1)用法
-t:列出归档文件中的内容,不解压。
tar -tvf archive0802.tar
4. 压缩选项
(1)压缩选项
-z:通过gzip压缩或解压缩归档文件。生成的文件名通常为.tar.gz。
-j:通过bzip2压缩或解压缩归档文件。生成的文件名通常为.tar.bz2。
-J:通过xz压缩或解压缩归档文件。生成的文件名通常为.tar.xz。
(2)示例
使用gzip压缩:tar -czvf archive0802.tar .gz file1.txt dir1/
使用bzip2压缩:tar -cjvf archive0802.tar .bz2 file1.txt dir1/
使用xz压缩:tar -cJvf archive0802.tar .xz file1.txt dir1/
五、其他说明
- 在使用tar命令时,-f选项及其后的归档文件名必须放在所有文件名和目录名之前。
- 默认情况下,tar命令会将相对路径的文件名解释为相对目录进行打包。如果指定了绝对路径,tar会将首个/去掉以防止解压时替换系统目录。
- 在处理大文件或目录时,建议使用压缩选项以减少磁盘空间占用和提高传输效率。
- tar命令支持多种压缩算法,如gzip、bzip2和xz等,可以根据需要选择合适的压缩方式。
- tar 还有很多高级选项和用法,例如排除某些文件、使用通配符等。你可以在 man tar 中找到更详细的文档。