您的位置:首页 > 运维架构 > Linux

linux 神奇的压缩指令与正规表示法

2007-03-09 11:10 246 查看
 

》》 *.Z  compress程序压缩的文件

 *.bz2  bzip2程序压缩的文件

 *.gz  gzip程序压缩的文件

 *.tar  tar程序打包的数据,没有经过压缩

 *.tar.gz tar程序打包的文件,且经过gzip压缩

》》compress

 -d:解压缩参数

 example:

 先复制/etc/man.config到root下,再将他压缩

 cp /etc/man.config /root

 compress man.config

 compress -d man.config.z

 uncompress man.config.z

 注意:如果没有给出其它参数,那么原始文件会被后来的*.Z文件取代。

 uncompress时也是一样。

 compress -d与uncompress功能相同。

》》bzip2,bzcat

 -d:解压缩

 -z:压缩

 example:

 bzip2 -z man.config

 bzcat man.config.bz2

 bzip2 -d man.config.bz2
 
 bunzip2 man.config.bz2

 如果不想解压文件,又想看的话,使用bzcat即可。

 遇到.bz,.bz2,.tbz,tbz2为后缀的文件时,可以尝试bzip2解压。

 bzip2 -d 与 bunzip2功能相同。

》》gzip,zcat

 -d:解压缩的参数

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

 example:

 gzip man.config

 会生成man.config.gz文件

 zcat man.config.gz                                        会读取man.config的内容,zcat可以同时读取compress与gzip的压缩文件

 gzip -d man.config.gz

 gunzip man.config.gz

 都产生man.config文件

 gzip -9 man.config
 
 以最大压缩比压缩文件

》》tar

 -z:是否同时具有gzip

 -x:解开一个压缩文件

 -t:查看tarfile里面的文件

 -c:建立一个压缩文件

 -v:压缩过程中显示文件

 -f:使用文件名

 -P:使用原文件的原有属性(属性不会依据用户而变)

 -p:可以使用绝对路径

 -N:比后面接的日期 (yyyy/mm/dd)还要新的文件才会被打包进新建的文件中

 --exclude File:在压缩过程中,不要将FILE打包

 example:

 mkdir supxmen

 cp /root supxmen

 tar -cvf supxmen.tar supxmen                           只将目录整合打包成一个文件

 tar -acvf supxmen.tar.gz supxmen                     除了将目录打包外,同时以gzip压缩

 tar -zcvf supxmen.tar.gz supxmen/home/*         将supxmen/home/目录下的文件全部打包并压缩为一个supxmen.tar.gz文件

 tar -xvf supxmen.tar                                          解压tar包,请注意,由于没有gzip(.tar而非.tar.gz)的作用,所以只要使用-xvf

                                                                          即可,不要加上z,否则会有问题

 tar -zxvf supxmen.tar.gz                                          这个就是加上gzip的压缩结果所以要加上-z

 tar -zxvf supxmen.tar.gz                                          这个t可以用来查看tar里面的文件信息,而不需要将它解开

 tar -zcvfp supxmen.tar.gz /home                              建立起来的压缩文件内文件为绝对路径

 tar -N ''''2002/06/25'''' -zcvf home.tar.gz /home         在/home目录中,比2002/06/25还要新的文件才会被打包进入ome.tar.gz中

 tar -acvf - /home | tar -xvf -                                  将/home打包后,直接解压缩在/root下。不需要再建立一次中间文件,

                                             不过,使用上面的语法最好使用绝对路径,这样不易产生问题,这个方式适合不想建立中间文件的情

                                              况。

》》注意:compress与gzip只适用于在一个文件的压缩,如果要压缩目录应该

 使用tar。

 另外为了提高安全性,如果一定要以绝对路径建立打包文件,那么就加入-P(大写)参数。

 使用-p(小写)之后,被打包的文件将不会依据用户的身份来改变权限。

 在Linux中,gzip已经被整合到tar中,但是Sun或其他较旧的Unix版本中的tar并没有整合gzip,所以如果你需要解压缩,就需要这么做:

 gzip -d supxmen.tar.gz

 tar -xvf supxmen.tar

》》cpio

 -o:将数据复制输出到文件或设备上

 -i:将数据自文件或设备复制出到系统中

 -t:查看cpio建立的文件或设备的内容

 -c:以一种较新的便携格式(portaable format)存储

 -v:让存储过程中文件名称可以在屏幕上显示

 -B:让默认的Blocks可以增至5120bytes,默认是512bytes

 这样的好处是可以让大文件的存储速度加快

 -d:自动建立目录,由于cpio的内容可能不在同一目录内

 -u:自动用较新的文件覆盖较旧的文件

 example:

 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

 cpio很神奇,它最适合用于备份,因为它并不像cp,它可以直接将文件复制过去。

》》正规表示法

》》grep

 example:

 grep root /var/log/secure                                   将/var/log/secure这个文件中有root的那一行显示出来

 grep "*[a-d]*" /var/log/secure                           输出含有a-d的行

 grep kernel /var/log/messages                           显示/var/log/messages文件里所有跟kernel有关的文字

 grep * /etc/*                                                      显示/etc下文件内容含有*的文件名称,由于*是特殊字符,必须使用跳转字符。

 grep ^boot /etc/*                                               查找内容中有一行是一boot开头的

 grep [XYZ] /etc/*                                                列出/etc下含有XYZ三个字符中任何一个字符的

 grep ^[w-z] /etc/*                                               只要在每一行中发现XYZ中任何一个,就显示出来

》》可搭配的通配符及其含义

 通配符                意义

 ^                     句首字符相符

-----------------------------------
 $                     句尾相同的字符

-----------------------------------
 ?                     任何一个单一字符

-----------------------------------
 *                    随意几个任意字符

-----------------------------------
                     跳转符号,将特殊字符变成普通字符

-------------------------------------------------
 [list]              列表中的字符

-----------------------------
 [range]          列表范围中的字符

---------------------------------
 [^list]           反向选择,与[list]相反

-------------------------------------
 [^range]       反向选择,与[range]相反

-----------------------------------------
 {n}            与前一个相同字连续n个

--------------------------------------
 {n,m}        与前一个相同字联系n-m个

------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux list 存储 file unix sun