tar
是 Linux/Unix 系统中用于创建、解压缩归档文件的工具。它常用于备份文件、打包文件夹以及解压归档文件。tar
支持多种压缩格式(如 .gz
、.bz2
和 .xz
),并且可以直接操作这些压缩文件。
基本语法
- 选项:指定操作类型(如打包、解压缩等)和附加功能(如显示详细信息)。
- 参数:指定目标文件或目录。
- 文件/目录:操作的目标文件或目录。
常用选项
选项 |
含义 |
-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)。 |
-u |
仅追加比归档文件中已有版本更新的文件(update)。 |
--exclude |
排除指定的文件或目录。 |
-C |
指定解压后文件存放的目录(change directory)。 |
常用操作
创建归档文件
1) 打包目录或文件(不压缩)
1
| tar -cvf archive.tar 文件1 文件2 目录/
|
1
| tar -cvf backup.tar /home/user
|
- 作用:将
/home/user
目录打包为 backup.tar
文件。
- 选项:
-c
:创建归档文件。
-v
:显示打包过程。
-f
:指定归档文件名称。
2) 打包并使用 gzip 压缩
1
| tar -zcvf archive.tar.gz 文件1 文件2 目录/
|
1
| tar -zcvf backup.tar.gz /home/user
|
- 作用:将
/home/user
目录打包为 backup.tar.gz
文件(gzip 压缩)。
3) 打包并使用 bzip2 压缩
1
| tar -jcvf archive.tar.bz2 文件1 文件2 目录/
|
1
| tar -jcvf backup.tar.bz2 /home/user
|
- 作用:将
/home/user
目录打包为 backup.tar.bz2
文件(bzip2 压缩)。
4) 打包并使用 xz 压缩
1
| tar -Jcvf archive.tar.xz 文件1 文件2 目录/
|
1
| tar -Jcvf backup.tar.xz /home/user
|
- 作用:将
/home/user
目录打包为 backup.tar.xz
文件(xz 压缩)。
解压归档文件
1) 解压 .tar
文件(无压缩)
- 作用:解压
backup.tar
文件到当前目录。
2) 解压 .tar.gz
文件(gzip 压缩)
1
| tar -zxvf archive.tar.gz
|
- 作用:解压
backup.tar.gz
文件到当前目录。
3) 解压 .tar.bz2
文件(bzip2 压缩)
1
| tar -jxvf archive.tar.bz2
|
1
| tar -jxvf backup.tar.bz2
|
- 作用:解压
backup.tar.bz2
文件到当前目录。
4) 解压 .tar.xz
文件(xz 压缩)
1
| tar -Jxvf archive.tar.xz
|
- 作用:解压
backup.tar.xz
文件到当前目录。
5) 解压到指定目录
1
| tar -xvf archive.tar -C /目标/目录
|
1
| tar -zxvf backup.tar.gz -C /home/user/extracted
|
- 作用:解压
backup.tar.gz
文件到 /home/user/extracted
目录。
列出归档文件内容
向现有归档文件中追加文件
1
| tar -rvf archive.tar 新文件
|
1
| tar -rvf backup.tar newfile.txt
|
- 作用:将
newfile.txt
追加到 backup.tar
文件中。
排除文件或目录
1
| tar --exclude=文件或目录 -zcvf archive.tar.gz 目录/
|
1
| tar --exclude=/home/user/temp -zcvf backup.tar.gz /home/user
|
- 作用:打包
/home/user
目录时,排除其中的 temp
子目录。
检查归档文件完整性
解压部分文件
1
| tar -xvf archive.tar 文件1 文件2
|
1
| tar -xvf backup.tar file1.txt file2.txt
|
- 作用:从
backup.tar
中仅解压 file1.txt
和 file2.txt
。
压缩目录为 .tar.gz
的快捷方式
1
| tar -czvf archive.tar.gz 目录/
|
1
| tar -czvf mybackup.tar.gz /var/log
|
- 作用:将
/var/log
目录压缩为 mybackup.tar.gz
。
常用示例总结
操作 |
命令 |
打包目录为 .tar 文件 |
tar -cvf archive.tar 目录/ |
打包并 gzip 压缩为 .tar.gz |
tar -zcvf archive.tar.gz 目录/ |
打包并 bzip2 压缩为 .tar.bz2 |
tar -jcvf archive.tar.bz2 目录/ |
打包并 xz 压缩为 .tar.xz |
tar -Jcvf archive.tar.xz 目录/ |
解压 .tar 文件 |
tar -xvf archive.tar |
解压 .tar.gz 文件 |
tar -zxvf archive.tar.gz |
解压 .tar.bz2 文件 |
tar -jxvf archive.tar.bz2 |
解压 .tar.xz 文件 |
tar -Jxvf archive.tar.xz |
解压到指定目录 |
tar -xvf archive.tar.gz -C /目标/目录 |
列出归档文件内容 |
tar -tvf archive.tar |
向归档文件追加文件 |
tar -rvf archive.tar 新文件 |
排除某些文件或目录 |
tar --exclude=文件 -zcvf archive.tar.gz 目录/ |
常见问题
如何快速压缩和解压缩目录?
1
| tar -zcvf archive.tar.gz 目录/
|
1
| tar -zxvf archive.tar.gz
|
如何排除某些文件或目录?
1
| tar --exclude=/path/to/exclude -zcvf archive.tar.gz 目录/
|
如何解压到指定目录?
1
| tar -zxvf archive.tar.gz -C /目标/目录
|
通过熟练使用 tar
命令,可以高效地进行文件和目录的打包和压缩操作,是 Linux 系统中备份和传输文件的重要工具!