tar 是 Linux 中用于归档文件的常用命令,支持打包、压缩、解压等操作。以下是详细用法和示例:
tar [选项] [输出文件名] [输入文件/目录]
| 选项 | 说明 |
|---|---|
-c |
创建新的归档文件(打包) |
-x |
解压归档文件 |
-f |
指定归档文件名(必须紧跟文件名) |
-v |
显示操作过程(verbose) |
-z |
使用 gzip 压缩/解压(.tar.gz 或 .tgz) |
-j |
使用 bzip2 压缩/解压(.tar.bz2) |
-J |
使用 xz 压缩/解压(.tar.xz) |
-t |
列出归档内容(不解压) |
-r |
向归档中追加文件 |
-C |
指定解压目录 |
打包为 .tar(不压缩):
tar -cvf archive.tar /path/to/files/
打包并用 gzip 压缩(.tar.gz):
tar -czvf archive.tar.gz /path/to/files/
打包并用 bzip2 压缩(.tar.bz2):
tar -cjvf archive.tar.bz2 /path/to/files/
打包并用 xz 压缩(.tar.xz):
tar -cJvf archive.tar.xz /path/to/files/
解压 .tar:
tar -xvf archive.tar
解压 .tar.gz 或 .tgz:
tar -xzvf archive.tar.gz
解压 .tar.bz2:
tar -xjvf archive.tar.bz2
解压 .tar.xz:
tar -xJvf archive.tar.xz
解压到指定目录:
tar -xzvf archive.tar.gz -C /target/directory/
tar -tvf archive.tar.gz
tar -rvf archive.tar newfile.txt
如何排除某些文件?
使用 --exclude:
tar -czvf archive.tar.gz --exclude="*.log" /path/to/files/
如何压缩多个目录?
直接列出路径:
tar -czvf archive.tar.gz /path1 /path2
如何保留文件权限?
添加 -p 选项:
tar -czvpf archive.tar.gz /path/to/files/
| 格式 | 命令选项 | 压缩率 | 速度 |
|---|---|---|---|
.tar |
-cf |
无 | 最快 |
.tar.gz |
-czf |
中等 | 中等 |
.tar.bz2 |
-cjf |
较高 | 较慢 |
.tar.xz |
-cJf |
最高 | 最慢 |
掌握这些命令后,你可以高效地管理 Linux 中的文件归档与压缩需求!