压缩文件的用途:①解决文件过大导致一些软盘无法将文件复制完成
②解决文件的复制和携带的问题
③解决备份文件或重要数据太大占用很多的硬盘与磁盘空间
压缩的概念:文件里面有很多的并不是完全填满的空间存在,而压缩就是将这些空间填满,让整个文件占用的容量下降。①如果想使用这些被压缩过的文件数据,必须将它还原成未压缩前的状态被称为[ 解压缩 ],②压缩前后的文件所占用的磁盘空间大小被称为[ 压缩比 ]
Linux系统常见的压缩命令(常见的压缩文件的文件名)
*.z compress 程序压缩的文件
*.bz2 bzip2 程序压缩的文件
*.gz gzip 程序压缩的文件
*.tar tar 程序打包的数据,并没有压缩过
*.tar.gz tar 程序打包的文件,经过 gzip 的压缩
*.tar.xz 当遇到 *.tar.xz格式的压缩包时可以使用 xz -d ***.tar.xz ,再使用tar -xvf ***.tar 或直接使用 tar -xvjf *** .tar.xz
压缩文件的背景:早期使用的是 compress 这个命令,后来GNU开发出了新的压缩命令 gzip 用来取代compress 这个压缩命令,再后面就出现了 bzip2 的压缩命令。这些命令通常只能针对一个文件来压缩与解压缩,每次压缩与解压缩都要一大堆文件,此时打包软件就显得很重要了。在 Unix-like 中还有 tar 打包工具,后来,GNU将整个tar 与压缩功能结合在一起,为用户提供更加强大的压缩和打包功能。下面就介绍一下在Linux里面这些基本的压缩命令!
compress
参数: -d:用来解压缩的参数
-r:可以连同目录下的文件一起压缩
-c:将压缩数据传输为 standard output (输出到屏幕)
将 /tmp/sysctl.conf 复制到 /etc,并压缩
将刚压缩的文件进行解压缩
将 sysctl.conf 压缩成另外一个文件来备份(-c 参数会将压缩过程的数据输出到屏幕上,而不是写入成后缀为[ *.Z ]的文件。我们可以通过数据重定向[ > ]的方法将数据输出成为另一个文件名!)
看到[ *.Z ]的文件时,就要知道它是 compress 这个命令压缩的!
gzip zcat
参数:
-c:将压缩的数据输出到屏幕上,可通过数据重定向来处理
-d:解压缩的参数
-t:可以用来检验压缩文件的一致性,卡文件有无错误
-#:压缩等级,-1 最快,但压缩比最差; -9 最慢,但压缩比最好;默认是 -6.
看到[ *.gz ]的文件时,就要知道它是 gzip 命令压缩的!至于 zcat 是用来读取压缩文件内容的命令,由于 gzip 这个压缩命令主要是用来取代 compress 的,所以 compress 的压缩文件也可以使用 gzip 来解压缩,zcat 命令也可以同时读取 compress 和 gzip 的压缩文件。
bzip2 bzcat
参数:
-c:将压缩过程产生的数据输出到屏幕上
-d:解压缩的参数 -z:压缩的参数
-#:和 gzip 相同,都是在计算压缩比的参数, -9 最佳, -1 最快!
看到[ *.bz2 ]的文件时,就要知道它是 bzip2 命令压缩的!如果读取这个文件内容可以使用 bzcat 命令即可且不需要解压缩,当你对一个文件解压缩时,只要这个文件名称为 [.bz],[.bz2],[.tbz],[.tbz2]等就可以尝试使用 bzip2 来解压缩看了!
tar
将整个 /etc目录下的文件全部打包成为 /tmp/etc.tar
如果加 z 参数则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file
如果加 j 参数,则以 .tar.bz2 来作为附文件名
由于使用 gzip 压缩,使用查看 tar file 内的文件时就需要加上 z 参数了!
将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 文件下,解压缩 /tmp/etc.tar.gz 的文件属性和 /etc/ 可能会有点不同!
在 /tmp 文件下,将 /tmp/etc.tar.gz 内的 etc/passwd 解压缩
将 /etc 内所有的文件备份下来,并保留权限!(这里的 -p [ permission ]的参数是当你要保留原文件的权限和属性)
在 /home 当中,比 2019/7/22 新的文件才备份(-N 参数类似于增量备份的作用)
我要备份 /home,/etc ,但不要 /home/chd
将 /etc/ 打包后直接解压缩在 /tmp 文件下,而不产生文件
要注意的是输出文件变成 - (代表 standard output),而输入文件也变成 - (代表 standard input),其实参数后面的 - 表示被打包的文件,还有一个 | (管道命令)存在。上面提到的 compress 与 gzip 使用对文件的压缩,而 tar 命令可以将整个目录或是指定的文件都压缩成一个文件!同时 tar 可以配合 gzip 同时整合并压缩!
tarball :表示由 tar 打包再压缩的文件, 如果仅是打包而没有压缩的话就称为 tarfile.
dd 制作和备份文件
参数:
if :input file of :output file
bs :规划一个 block 的大小,默认是512 bytes
count :多少个 bs 的意思
将 /etc/passwd 备份到 /tmp/passwd.back 当中
tar 可以用来备份关键数据,而 dd 则可以用来备份整个 partition 或整个 disk
cpio 通过数据重定向的方法将文件进行输入输出
将所有系统上的数据全部写入磁带机内(使用 SCSI 接口的磁带机,代号是 /dev/st0)
检查磁带机上面有什么文件
将 /etc 文件下的所有文件都备份到 /root/etc.cpio 中
cpio 命令最适用于备份,由于 cpio 无法直接读取文件,而需要每个文件或目录的路径和文件名一起才能被记录下来,所以 cpio 最常跟 find 命令一起使用了。