位置:海鸟网 > IT > linux/Unix >

Linux操作系统压缩命令相关

 Linux 压缩文件的后缀名*.Z compress 程序压缩的文件;*.bz2 bzip2 程序压缩的文件;*.gz gzip 程序压缩的文件;*.tar tar 程序打包的数据,并没有压缩过;*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩。

  compress:语法:# compress [-d] filename参数说明:-d :解压缩的参数!

  示例:

  # compress man.config压缩# compress -d man.config.Z # uncompress man.config.Z解压缩gzip, zcat:

  语法:# gzip [-d#] filename <==压缩与解压缩# zcat filename.gz <==读取压缩文件内容参数说明:-d :解压缩的参数!

  -# :压缩等级, 1 最不好, 9 最好, 6 是默认值!

  示例:# gzip man.config会产生 man.config.gz 这个文件# zcat man.config.gz会读取出 man.config 的内容# gzip -d man.config.gz # gunzip man.config.gz解压缩,产生 man.config 这个文件-1 是最差的压缩比,但是压缩速度最快,而 -9 虽然可以达到较佳的压缩比(经过压缩之后,档案比较小一些!),但是却会损失一些速度! -6 是默认值bzip2, bzcat:

  语法:# bzip2 [-dz] filename <==压缩解压缩命令# bzcat filename.bz2 <==读取压缩文件内容命令参数说明:-d :解压缩-z :压缩示例:# bzip2 –z man.config压缩# bzcat man.config.bz2读取# bzip2 –d man.config.bz2 # bunzip2 man.config.bz2解压缩

  tar:

  语法:# tar [-zxcvfpP] filename # tar -N 'yyyy/mm/dd' /path -zcvf target.tar.gz source参数说明:-z :同时具有 gzip 的属性-x :解开一个压缩文件的参数命令-t :查看 tarfile 里面的文件-c :建立一个压缩文件的参数命令-v :压缩的过程中显示文件-f :使用文件或文件夹名,在 f 之后要立即接文件或文件夹名,不要再加参数要写成「 tar -zcvPf tfile sfile」才对-p :使用原文件的原来属性(属性不会依据使用者而变)

  -P :可以使用绝对路径-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中——exclude FILE:在压缩的过程中,不要将 FILE 打包!

  示例:# tar -cvf directory.tar directory只将文件夹整合打包成一个文件# tar -zcvf directory.tar.gz directory除了将文件夹打包外,同时以 gzip 压缩# tar -zcvf filename.tar.gz /home/test/*将 /home/test/ 这个文件夹下的文件全部打包并压缩成为一个 filename.tar.gz 的文件# tar -xvf directory.tar解 tar 的封包,因为没有使用gzip (。tar 而非 .tar.gz),所以只要使用 –xvf 即可!不需要加上 z ,否则会显示有问题!

  # tar -zxvf directory.tar.gz这个就是有加上 gzip 的压缩的结果,所以需要加上 –z # tar –ztvf directory.tar.gz这个 t 可以用来查看 tar 里面的文件信息,而不是将其解开。

  # tar -zcvPf home.tar.gz /home则建立起来的压缩文件内文件(夹)为绝对路径请注意,使用这个 P 的参数时,不要将 P 加在 f 后面,因为f 之后要立即接文件名才行。

  # tar -N '2002/06/25' -zcvf home.tar.gz /home上面是说 在 /home 这个文件夹中,比 2002/06/25 日还要新的文件才会被打包进入 home.tar.gz 这个文件中。

  # tar -zcvf host.tar.gz / ——exclude /mnt ——exclude /proc上面是说,将根文件夹的所有数据都打包进 host.tar.gz 这个文件中,但是 /mnt 及 /proc 则不打包。

  # tar -cvf - /home | tar -xvf –直接以管线命令「 pipe 」来进行压缩、解压缩的过程。在上面的例子中,我们想要「将 /home 底下的数据直接 copy 到目前所在的路径,也就是 /root 底下来」,但是又觉得使用 cp -r 有点麻烦,那么就直接以这个打包的方式来打包,其中,命令里面的 - 就是表示那个被打包的文件。由于我们不想要让过渡文件存在,所以就以这一个方式来进行复制。

  cpio:语法:# cpio -covB > [file|device]<==备份# cpio -icduv < [file|device]<==还原参数说明:-o :将资料 copy 输出到文件或设备上-i :将数据从文件或设备上还原到系统中-t :查看cpio建立的文件或设备内容-c :一种较新的 portable format 方式储存-v :在屏幕上显示备份过程中的文件名-B :让默认的 Blocks 可以增加至 5120 bytes ,默认是 512 bytes .这样的好处是可以让大文件的储存速度加快。

  -d :自动建立文件夹,由于 cpio 的内容可能不是在同一个文件夹内,如此的话在反备份的过程会有问题! 这个时候加上 -d 的话,就可以自动的将需要的目录建立起来了!

  -u :更新,用较新的文件覆盖旧的文件示例:# find / -print | cpio -covB > /dev/st0将查找到的文件存到存储设备# cpio -icduv < /dev/st0将存储设备的数据还原回来!

  # cpio -icdvt < /dev/st0 > /tmp/content将存储设备的内容(文件名而已)转存到 /tmp/content # find / -type -f | cpio -o > /tmp/root.cpio # cpio -i < /tmp/root.cpio先输出到 /tmp/root.cpio 这个文件,然后再给他还原回来!