linux 神奇的压缩指令与正规表示法
时间:2016-12-22 15:41 来源:linux.it.net.cn 作者:IT
》》 *.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个
------------------------------------------
(责任编辑:IT)
》》 *.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个 ------------------------------------------ (责任编辑:IT) |