linux的tar命令详细使用
tar
是 Linux 系统中用于归档文件的命令行工具,全称为 Tape ARchive。它可以将多个文件或目录打包成一个归档文件(通常称为 tarball),并可选择是否压缩。以下是 tar
命令的详细用法:
基本语法
tar [选项] [归档文件名] [文件或目录列表]
常用选项
选项 | 说明 |
---|---|
-c | 创建新的归档文件(create) |
-x | 解压归档文件(extract) |
-f | 指定归档文件名(file),必须放在最后 |
-v | 显示操作过程的详细信息(verbose) |
-z | 使用 gzip 压缩/解压(.tar.gz 或 .tgz ) |
-j | 使用 bzip2 压缩/解压(.tar.bz2 ) |
-J | 使用 xz 压缩/解压(.tar.xz ) |
-t | 列出归档内容(list) |
-r | 向归档文件中追加文件(append) |
-C | 解压到指定目录(directory) |
--exclude | 排除指定文件/目录 |
常见用法示例
1. 打包与压缩
- 打包目录(不压缩):
tar -cvf archive.tar /path/to/dir
- 打包并用
gzip
压缩:tar -czvf archive.tar.gz /path/to/dir
- 打包并用
bzip2
压缩(更高压缩率,但较慢):tar -cjvf archive.tar.bz2 /path/to/dir
- 打包并用
xz
压缩(更高压缩率):tar -cJvf archive.tar.xz /path/to/dir
2. 解压
- 解压到当前目录:
tar -xvf archive.tar
- 解压
.tar.gz
或.tgz
文件:tar -xzvf archive.tar.gz
- 解压到指定目录:
tar -xvf archive.tar -C /target/dir
3. 查看归档内容
tar -tvf archive.tar
4. 追加文件到归档
tar -rvf archive.tar newfile.txt
注意:不能向已压缩的归档(如
.tar.gz
)追加文件。
5. 排除特定文件
tar -czvf archive.tar.gz --exclude='*.log' /path/to/dir
压缩与解压对比表
扩展名 | 压缩命令 | 解压命令 |
---|---|---|
.tar | tar -cvf archive.tar | tar -xvf archive.tar |
.tar.gz | tar -czvf archive.tar.gz | tar -xzvf archive.tar.gz |
.tar.bz2 | tar -cjvf archive.tar.bz2 | tar -xjvf archive.tar.bz2 |
.tar.xz | tar -cJvf archive.tar.xz | tar -xJvf archive.tar.xz |
注意事项
- 选项顺序:
-f
必须紧跟文件名(如-cvf archive.tar
)。 - 压缩效率:
gzip
速度最快,bzip2
和xz
压缩率更高但更慢。 - 通配符:解压时可用
*.tar.gz
,但建议用引号包裹(如"*.tar.gz"
)避免 Shell 扩展。
高级用法
-
分卷压缩(结合
split
):tar -czvf - /large/dir | split -b 100M - archive_part.tar.gz.
解压时合并:
cat archive_part.tar.gz.* | tar -xzvf -
-
排除多个文件:
tar -czvf archive.tar.gz --exclude='*.tmp' --exclude='cache/' /path/to/dir