tar压缩和解压缩
### Linux下的tar命令详解 #### 一、tar命令概述 `tar`命令是Linux系统中极为重要的文件打包工具之一,其名称来源于“tape archive”,最初用于磁带存储设备上的文件归档。随着技术的发展,`tar`命令已经成为现代操作系统中进行文件打包与解包的标准工具。`tar`命令不仅支持简单的文件打包,还支持多种压缩格式,如gzip和bzip2等。 #### 二、tar命令的基本语法 ```bash tar [选项] 文件与目录 ``` 其中,`选项`用于指定不同的操作模式和功能,`文件与目录`则是需要处理的具体目标。 #### 三、常用参数详解 1. **-c** (create): 创建一个新的归档文件。 2. **-x** (extract): 从已有的归档文件中提取文件。 3. **-t** (list): 查看归档文件中的内容列表。 4. **-z** (gzip): 在归档的同时使用gzip进行压缩或解压。 5. **-j** (bzip2): 使用bzip2进行压缩或解压。 6. **-v** (verbose): 显示详细的处理过程,便于观察。 7. **-f** (file): 指定归档文件的名称。 8. **-p** (preserve-permissions): 保持原文件的权限不变。 9. **-P** (absolute-names): 允许使用绝对路径进行归档。 10. **-N** (newer): 只包含较指定日期更新的文件。 11. **--exclude** (exclude): 在归档过程中排除特定的文件或目录。 #### 四、示例解析 ##### 范例一:创建压缩文件 ```bash [root@linux~]# tar -cvf /tmp/etc.tar /etc # 仅打包,不压缩 [root@linux~]# tar -zcvf /tmp/etc.tar.gz /etc # 打包后,使用gzip压缩 [root@linux~]# tar -jcvf /tmp/etc.tar.bz2 /etc # 打包后,使用bzip2压缩 ``` - `-cvf`表示创建归档文件并指定输出文件名为`/tmp/etc.tar`。 - `-zcvf`表示在创建归档文件的同时使用gzip压缩。 - `-jcvf`表示在创建归档文件的同时使用bzip2压缩。 ##### 范例二:查看压缩文件内容 ```bash [root@linux~]# tar -ztvf /tmp/etc.tar.gz ``` - `-ztvf`表示查看使用gzip压缩的归档文件`/tmp/etc.tar.gz`中的内容。 ##### 范例三:解压缩文件至指定目录 ```bash [root@linuxsrc]# tar -zxvf /tmp/etc.tar.gz ``` - `-zxvf`表示将`/tmp/etc.tar.gz`解压至当前目录。 ##### 范例四:解压特定文件 ```bash [root@linuxtmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd ``` - `-zxvf`后面紧跟要解压的文件名,例如`etc/passwd`。 ##### 范例五:备份文件并保持权限 ```bash [root@linux~]# tar -zcvpf /tmp/etc.tar.gz /etc ``` - `-zcvpf`中的`-p`表示保持原文件的权限。 ##### 范例六:备份指定日期后的文件 ```bash [root@linux~]# tar -N '2005/06/01' -zcvf home.tar.gz /home ``` - `-N '2005/06/01'`表示只备份比2005年6月1日更新的文件。 ##### 范例七:排除特定目录进行备份 ```bash [root@linux~]# tar --exclude=/home/dmtsai -zcvf myfile.tar.gz /home /* /etc ``` - `--exclude=/home/dmtsai`表示在备份过程中排除`/home/dmtsai`目录。 ##### 范例八:管道操作 ```bash [root@linuxtmp]# tar -cvf - /etc | tar -xvf - ``` - 此命令使用管道`|`连接两个`tar`命令,第一个命令将`/etc`目录打包,第二个命令将打包后的数据解压到当前目录。 #### 五、总结 `tar`命令在Linux系统管理中扮演着至关重要的角色,它提供了丰富的选项和功能,使得用户能够灵活地管理和操作文件及目录。通过掌握上述的基础命令和示例,你可以更加高效地使用`tar`命令进行文件打包和解包的操作。在实际工作中,根据具体需求选择合适的选项组合可以大大提高工作效率。