linux中tar命令详解
tar 是 Linux 中用于 打包和解包文件 的常用命令。它可以将多个文件或目录打包成一个归档文件(通常称为 tarball),也可以从归档文件中提取文件。以下是 tar 命令的详细用法:
基本语法
tar [选项] [归档文件名] [文件或目录列表]
常用选项
1. 创建归档文件
-c:创建一个新的归档文件。
-f:指定归档文件的名称。
-v:显示操作过程的详细信息(可选)。
-z:使用 gzip 压缩归档文件(.tar.gz)。
-j:使用 bzip2 压缩归档文件(.tar.bz2)。
-J:使用 xz 压缩归档文件(.tar.xz)。
示例
1.打包文件(不压缩):
tar -cvf archive.tar file1 file2 dir1
生成一个名为 archive.tar 的归档文件。
2.打包并使用 gzip 压缩:
tar -czvf archive.tar.gz file1 file2 dir1
生成一个名为 archive.tar.gz 的压缩归档文件。
3.打包并使用 bzip2 压缩:
tar -cjvf archive.tar.bz2 file1 file2 dir1
生成一个名为 archive.tar.bz2 的压缩归档文件。
4.打包并使用 xz 压缩:
tar -cJvf archive.tar.xz file1 file2 dir1
生成一个名为 archive.tar.xz 的压缩归档文件。
2. 提取归档文件
-x:从归档文件中提取文件。
-f:指定要提取的归档文件。
-v:显示操作过程的详细信息(可选)。
-z:解压 gzip 压缩的归档文件(.tar.gz)。
-j:解压 bzip2 压缩的归档文件(.tar.bz2)。
-J:解压 xz 压缩的归档文件(.tar.xz)。
-C:指定提取文件的目标目录。
示例
1.提取 .tar 文件:
tar -xvf archive.tar
2.提取 .tar.gz 文件:
tar -xzvf archive.tar.gz
3.提取 .tar.bz2 文件:
tar -xjvf archive.tar.bz2
4.提取 .tar.xz 文件:
tar -xJvf archive.tar.xz
5.提取到指定目录:
tar -xzvf archive.tar.gz -C /target/directory
3. 查看归档文件内容
-t:列出归档文件中的内容。
示例
查看 .tar 文件内容:
tar -tvf archive.tar
查看 .tar.gz 文件内容:
tar -tzvf archive.tar.gz
4. 追加文件到归档
-r:将文件追加到已存在的归档文件中。
示例
tar -rvf archive.tar newfile
5. 排除文件
--exclude:打包时排除指定的文件或目录。
示例
tar -czvf archive.tar.gz --exclude='dir1/subdir' dir1
6. 保留文件权限
-p:保留文件的原始权限(常用于备份)。
示例
tar -czvpf backup.tar.gz /path/to/backup
7. 分卷压缩
--tape-length 或 -L:将归档文件分割成指定大小的卷。
示例
tar -czvf - dir1 | split -b 100M - archive.tar.gz.
生成 archive.tar.gz.aa、archive.tar.gz.ab 等分卷文件。
常见用法总结
操作 命令示例
打包文件 tar -cvf archive.tar file1 file2
打包并 gzip 压缩 tar -czvf archive.tar.gz file1 file2
打包并 bzip2 压缩 tar -cjvf archive.tar.bz2 file1 file2
打包并 xz 压缩 tar -cJvf archive.tar.xz file1 file2
提取 .tar 文件 tar -xvf archive.tar
提取 .tar.gz 文件 tar -xzvf archive.tar.gz
提取 .tar.bz2 文件 tar -xjvf archive.tar.bz2
提取 .tar.xz 文件 tar -xJvf archive.tar.xz
查看归档内容 tar -tvf archive.tar
追加文件到归档 tar -rvf archive.tar newfile
排除文件 tar -czvf archive.tar.gz --exclude='dir'
保留文件权限 tar -czvpf backup.tar.gz /path/to/backup
注意事项
压缩效率:xz 压缩率最高,但速度较慢;gzip 压缩率适中,速度较快;bzip2 介于两者之间。
权限问题:提取文件时,可能需要使用 sudo 来保留文件权限。
分卷压缩:分卷压缩后,解压时需要将所有分卷文件放在同一目录下,然后解压第一个分卷文件即可。