Linux归档和压缩命令介绍
Linux系统中,归档和压缩是很常见的操作,由于Linux系统中有很多的文本文件,代码和配置文件,为了保护数据的安全,方便数据的迁移,就需要使用归档和压缩命令对文件进行打包和压缩,下面我们就来介绍一下在Linux中常用的归档和压缩命令。
一、归档命令
1. tar命令
tar是一种用来打包归档文件的命令。它的名称来源于普通话中的“打电话”之意。tar 支持多种压缩格式,例如:gzip (压缩率较高), bzip2 (压缩率更高), xz (压缩率最高),在使用时需要-gz,-bz2等标志指出压缩格式。
语法示例:
tar [选项] [归档文件名] [待归档文件或目录列表]
选项:
-c:创建归档文件。
-v:显示所有归档的文件。
-f:指定归档文件名。
-x:解归档。
-z:使用gzip进行压缩和解压缩。
-j:使用bzip2进行压缩和解压缩。
例子:
tar -cvf abc.tar file1.txt file2.txt file3.txt
解释:
-c 表示创建归档文件, -v 表示详细显示所有归档的文件,-f 表示指定归档文件名, abc.tar 是归档文件名, file1.txt file2.txt file3.txt 是待归档文件。
整个操作表示将file1.txt,file2.txt,file3.txt这3个文件归档成一个名为abc.tar的压缩文件。
2. cpio 命令
cpio 命令可以将文件压缩成.cpio后缀的文件形式,压缩率不高,但可以将文件压缩成一种比较特殊的备份文件格式。cpio 默认使用的是ASCII字符集,不能直接压缩成tar.gz的形式。
语法示例:
cpio [选项] [c(d)umpl] < 目录1 > 文件名
选项:
-i:解归档。
-O:输出文件名。
-v:显示详细信息。
-d:建立目录。
-m:保留文件属性。
-f:指定输出文件的名称。
例子:
find /home/linux -depth | cpio -ov > abc.cpio
解释:
find /home/linux -depth 表示查找/home/linux目录下的所有文件,-depth 表示从上到下查找,-o 表示将文件压缩成.cpio后缀的文件形式,-v 表示显示详细信息,> abc.cpio 表示将结果输出到名为abc.cpio的文件中。
二、压缩命令
1. gzip 命令
gzip 命令是一种压缩归档命令,支持单文件和多文件压缩,压缩率一般,但是速度比较快,带有gunzip解压缩工具。
语法示例:
gzip [选项] [待压缩文件列表]
选项:
-r:递归地压缩目录。
-c:将压缩的数据输入到标准输出中。
-d:解压缩。
-v:输出压缩信息。
-k:保留原文件。
例子:
gzip file1.txt
解释:
gzip命令后面跟着带压缩的文件,该命令的操作是将file1.txt压缩成一个gzip格式的文件file1.txt.gz。
2. bzip2 命令
bzip2 命令又称为 BurrZip,是Linux系统中一种流行的文件压缩和归档命令,相对于gzip来说压缩率更高,但速度较慢,是大文件压缩首选。
语法示例:
bzip2 [选项] [待压缩文件列表]
选项:
-r:递归地压缩目录。
-k:保留原文件。
-d:解压缩。
-v:输出压缩信息。
z:指定使用bzip2进行压缩和解压缩。
例子:
bzip2 file1.txt
解释:
该命令将file1.txt压缩成一个.bz2格式的文件。
3. xz 命令
xz命令是一种压缩和归档命令,在Linux系统中压缩率最高,速度较慢。压缩文件格式一般为.xz。
语法示例:
xz [选项] [待压缩文件列表]
选项:
-z:指定使用bz2进行压缩和解压缩。
-k:保留原文件。
-d:解压缩。
-l:输出压缩信息。
例子:
xz file1.txt
解释:
该命令将file1.txt压缩成一个.xz格式的文件。
三、归档和压缩文件的常用命令组合
1. tar + gzip
tar -czvf abc.tar.gz file1.txt file2.txt file3.txt
解释:
该命令将file1.txt,file2.txt,file3.txt这3个文件归档成一个名为abc.tar并用gzip算法压缩,最终生成的文件为abc.tar.gz。
2. tar + bzip2
tar -cjvf abc.tar.bz2 file1.txt file2.txt file3.txt
解释:
该命令将file1.txt,file2.txt,file3.txt这3个文件归档成一个名为abc.tar并用bzip2算法压缩,最终生成的文件为abc.tar.bz2。
3. tar + xz
tar -cJvf abc.tar.xz file1.txt file2.txt file3.txt
解释:
该命令将file1.txt,file2.txt,file3.txt这3个文件归档成一个名为abc.tar并用xz算法压缩,最终生成的文件为abc.tar.xz。
