对于文件系统的压缩和解压缩,我们需要了解压缩格式,然后学会解压和压缩即可。
本文介绍了Linux 中,常见的打包和压缩命令的使用。包括tar 打包,dd命令,cpio以及常用的压缩方式。
压缩格式
*.Z compress 程序压缩的文件;
*.zip zip 程序压缩的文件;
*.gz gzip 程序压缩的文件;
*.bz2 bzip2 程序压缩的文件;
*.xz xz 程序压缩的文件;
*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩
*.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩
*.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩
如此多的压缩格式,其实也不用记忆,我们看格式后缀就可以了
Linux 常见压缩格式:gzip/bzip2 以及xz
compress 不在常用之列
Linux压缩格式问题
我想用户一定有问题:这么多格式使用这个多压缩方式,需要学习那么多压缩格式不费事吗?linux没人针对这个这问题提出解决方案吗?
tar 打包和解压
我们知道,每一个压缩格式,对应这一个压缩命令的使用,这么多对用户来说肯定是不友好的
tar 支持将多个文件(目录)进行打包,打包完成后,通过gzip/bzip2/xz
的支持,将文件进行压缩
tar 常见的压缩和解压用法
tar -jcv -f filename.tar.bz2 [目录或者文件] #压
tar -jxv -f filename.tar.bz2 -C [目录]#解压
-j
表示 bzip2 压缩/解压缩 名称:.tar.bz2
-J
表示XZ 名称:.tar.bz2
-z
表示gzip解压缩 tar.gz
将对应的字母进行替换即可。
dd 命令
dd
是一个在 Unix 和类 Unix 系统中常用的命令行工具,它的主要功能是进行数据转换和拷贝。dd
命令可用于复制文件、处理数据流、执行备份和恢复操作等。
dd是直接读取扇区,因此可以将整个设备备份成一个文件。备份完成我们会发现,文件会变成的和磁盘一样大。它不理会文件系统,单纯得依据磁盘扇区进行备份。
dd
命令的基本语法为:
dd [选项]
以下是 dd
命令的一些常见用途和选项:
拷贝文件或设备:
dd
命令可以复制文件、设备或数据流。例如,将一个文件复制到另一个文件:
dd if=input_file of=output_file
其中 input_file
是源文件,output_file
是目标文件。
制作镜像:
可以使用 dd
命令创建设备或文件的镜像。例如,制作硬盘镜像:
dd if=/dev/sda of=hard_drive_image.img
这将把 /dev/sda
的内容复制到 hard_drive_image.img
文件中。
更改数据流:
dd
命令可以处理输入和输出的数据流,可以结合不同选项进行数据转换、修改等操作。
指定块大小和偏移量:
通过设置 bs
(块大小)和 skip
(跳过的块数)等选项,可以控制 dd
命令处理数据时的块大小和位置。
用于备份和恢复:
dd
命令可以用于备份整个硬盘或分区,并在需要时进行恢复。
随机数据生成:
dd
命令可以生成随机数据或空数据文件,常用于测试或填充文件。
它的常见用法包括:
创建设备镜像: 通过将一个设备的内容复制到另一个设备或文件,可以创建设备的镜像。例如,从一个硬盘复制到另一个硬盘:
dd if=/dev/sda of=/dev/sdb
这将硬盘 /dev/sda
的内容完整复制到 /dev/sdb
。
备份和恢复: 可以使用 dd
命令创建设备或分区的备份,并在需要时进行恢复。例如,备份分区到一个文件:
dd if=/dev/sda1 of=backup_partition.img
这会将 /dev/sda1
分区的内容复制到 backup_partition.img
文件中。
制作随机数据或空文件: dd
可以生成特定大小的随机数据或空文件。例如,生成一个 1GB 大小的随机文件:
dd if=/dev/urandom of=random_file bs=1M count=1024
这会使用 /dev/urandom
中的随机数据创建一个名为 random_file
的 1GB 文件。
对数据进行转换: dd
可以根据需要对数据进行转换,例如改变块大小、跳过特定字节数等。
dd if=/dev/sda of=/dev/sdb bs=4M conv=sync,noerror status=progress
这个示例中,bs=4M
设置了块大小为 4MB,conv=sync,noerror
用于处理错误和同步数据。
擦除设备数据: 通过将特定数据模式写入设备,可以安全地擦除设备上的数据。
dd if=/dev/zero of=/dev/sda bs=1M
这会使用 /dev/zero
中的数据覆盖硬盘 /dev/sda
上的数据。
无论何时使用 dd
命令,都要特别小心,因为它是一个强大且直接操作数据的工具。错误的使用可能导致数据丢失或系统损坏。在使用时,请务必确保指定正确的输入和输出,以及正确的参数和选项。
cpio命令
cpio
命令是在类 Unix 系统中用于归档和备份文件的一个工具。它通常与其他命令(例如 find
、tar
)一起使用,用于创建和提取文件归档。
cpio
命令的主要功能是在文件系统中复制文件。它的名称 "cpio" 代表 "copy in, copy out",它的工作方式是读取输入并将其写入输出,因此可以用于创建归档、复制文件、备份数据等。
常见用法示例:
创建归档文件:
使用 find
命令将文件列表传递给 cpio
命令,然后将它们归档到一个文件中:
find /path/to/files -depth | cpio -o > archive.cpio
这会将 /path/to/files
下的文件列表归档到 archive.cpio
文件中。
从归档文件中提取文件:
从一个 cpio
归档文件中提取文件:
cpio -i < archive.cpio
这会从 archive.cpio
文件中提取归档的文件列表。
使用 cpio
和 tar
进行归档和解压:
cpio
通常与 find
或 tar
一起使用,以便选择性地归档和提取文件。例如,可以将 find
的输出传递给 cpio
进行归档,然后再用 cpio
提取需要的文件。
cpio
的强大之处在于它能够以多种不同的方式读取文件列表,包括从标准输入中读取、从文件中读取列表以及使用其他命令的输出作为输入。
需要注意的是,cpio
0 评论