tar zxvf test.tar.gz  html/ds.txt     解压出压缩包内指定文件

现在需要对test.tar.gz中的指定文件test/f1.txt进行解包到一个指定目录,比如为/root,用tar的-C选项可以指定目录,于是 tar -zxvf test.tar.gz -C /root test/f1.txt,这样解包得到的是/root/test/f1.txt,

tail
Linux命令:显示文件结尾   Head/Tail   head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾,看看下面的范例:
(1)displays the first 6 lines of a file   head -6 readme.txt  (2) displays the last 25 lines of a file   tail -25 mail.txt   
范例一是显示档案的前 6 行,范例二则是显示档案最后的 25 行。  而下面的范别,结合了 head 与 tail 的指令,显示档案的第 11 行到第 20 行:
(3)  head -20 file | tail -10   在 tail 的使用手册页中显示了比 head 还多的可用参数,其中有一个很好用的参数 " -f ",使用此参数时,tail 不会回传结束信号,除非我们去自行去中断它;相反的,它会一直等待一段时间,一直到他发现资料自它最后一次被读取后,又被加入新的一行时:
(4)  display ongoing updates to the given   log file   tail -f /usr/tmp/logs/daemon_log.txt   上述范例可以动态显示该 log 文件的动态更新。  假设该服务程序是一直不断的加入动态资料到/usr/adm/logs/daemon_log.txt 的 log 文件里,在命令列控制窗口中使用 tail -f,它将会以一定的时间实时追踪该档的所有更新。 ( -f 的只有在其输入为档案时才能使用 )。  假如你在 tail 后下了多个档案参数,你便能在同一个窗口内一次追踪数个 log 档:  track the mail log and the server error log   at the same time.   tail -f /var/log/mail.log /var/log/apache/error_log   tac -- 反过来串连?!   cat 倒过来怎么拼 ? 对啦 !! 这就是 tac 的功能啰 ~ 它是把档案的顺序内容反过来串连用的,那么 ~ 它都用在什么状况下呢 ? 任何须要以后进先出的顺序重新排列组件的工作都用得上它 ! 以下面的指令来说,便是以自最后建立的到最先建立的顺序,列出三个最新建的使用者帐号:
(5)last 3 /etc/passwd records - in reverse   $ tail -3 /etc/passwd | tac   curly:x:1003:100:3rd Stooge:/homes/curly:/bin/ksh   larry:x:1002:100:2nd Stooge:/homes/larry:/bin/ksh   moe:x:1001:100:1st Stooge:/homes/moe:/bin/ksh

1.cat >file 记录的是键盘输入,相当于从键盘创建文件,并且只能创建新文件,不能编辑已有文件.>是数据重导向,会将你输入的文本内容输出到file中.
例如:

不会出现>提示符,直接输入回车,文字都会记录.ctrl+c或者ctrl+d才能退出.之后通过cat wyg,生成了wyg这个文件.

就可以查看刚才输入的内容.

2.cat <<EOF,
cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
EOF是"end of file",表示文本结束符。
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。


注意:这里的<<是左方向的,并且会出现PS2的提示符>,并且在输入EOF后,会退出编辑状态并打印出编辑内容.其实<<EOF与EOF之间是为了限定内容范围,并无实际意义,相当于ctrl+d,还可以理解为将echo一行一行的内容整和到一起.但并不生成文件.

EOF只是标识,并不是固定不变的也可以用别的符号代替比如EEE等等。Cat << EOF   ...EOF 最后一个EOF一定顶格写,还有相关命令一定要顶格写,否则起不到ctrl+d的作用.

3.cat >file <<EOF
两条命令结合起来使用,既记录了键盘输入内容,同时又规定了结束符号之内的内容的范围

出现>命令提示符输入内容,输入EOF又可以结束本次输入,同时生成了wyg这个文件.

还有看到cat <<EOF| "|"之前是标准输入,之后为标准输出,再次输入EOF后结束,屏幕上还会打印出执行的命令内容.cat <<-EOF可以忽略掉TAB键.

注意这里的命令一定要紧跟"|"管道,或者用"\"转义符号,否则会提示找不到命令.

看起来,EOF就是是一个标识,分界符,方便脚本编辑.记录一下,备用.

linux下不解压查看tar.gz压缩包的文件列表

如下两种命令均可:
gunzip <a.tar.gz |tar tvf -

gzip -dc s.tar.gz | tar tvf -
 
 tar命令
tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文 件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和 目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
Linux上的tar是GNU版本的。
语法:tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。
  例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,
  这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份 文件的最后。
x 从档案文件中释放文件。
辅助选项:
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
f 使用档案文件或设备,这个选项通常是必选的。
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
w 每一步都要求确认。
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
 
Linux下的压缩文件剖析
对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。
别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap。
可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,
此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了。
本文就来对这些常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕.

  Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法:
tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下:

  # tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

  # tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

       # tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
  # tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

  # tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思
以上就是tar的最基本的用法。
        为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2等。
1) tar调用gzip
        gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下:
# tar -czf all.tar.gz *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz
# tar -xzf all.tar.gz
这条命令是将上面产生的包解开。

  2) tar调用bzip2
bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例说明一下:
# tar -cjf all.tar.bz2 *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2
# tar -xjf all.tar.bz2
这条命令是将上面产生的包解开。

        3)tar调用compress
compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人多。.Z结尾的文件就是bzip2压缩的结果。与 compress相对的解压程序是uncompress。tar中使用-Z这个参数来调用gzip。下面来举例说明一下:
# tar -cZf all.tar.Z *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成一个uncompress压缩过的包,包名为all.tar.Z
# tar -xZf all.tar.Z
这条命令是将上面产生的包解开
有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:
1)对于.tar结尾的文件
tar -xf all.tar
2)对于.gz结尾的文件
gzip -d all.gz
gunzip all.gz
3)对于.tgz或.tar.gz结尾的文件
tar -xzf all.tar.gz
tar -xzf all.tgz
4)对于.bz2结尾的文件
bzip2 -d all.bz2
bunzip2 all.bz2
5)对于tar.bz2结尾的文件
tar -xjf all.tar.bz2
6)对于.Z结尾的文件
uncompress all.Z
7)对于.tar.Z结尾的文件
tar -xZf all.tar.z
unzip命令
unzip命令,该命令用于解扩展名为.zip的压缩文件。

语法:unzip [选项] 压缩文件名.zip

各选项的含义分别为:

-x 文件列表 解压缩文件,但不包括指定的file文件。

-v 查看压缩文件目录,但不解压。

-t 测试文件有无损坏,但不解压。

-d 目录把压缩文件解到指定目录下。

-z 只显示压缩文件的注解。

-n 不覆盖已经存在的文件。

-o 覆盖已存在的文件且不要求用户确认。

-j 不重建文档的目录结构,把所有文件解压到同一目录下。

例1:将压缩文件text.zip在当前目录下解压缩。

$ unzip text.zip 

例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

$ unzip -n text.zip -d /tmp 

例3:查看压缩文件目录,但不解压。

$ unzip -v text.zip
gzip命令
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
语法:gzip [选项] 压缩(解压缩)的文件名
各选项的含义:
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示下列字段:
  压缩文件的大小
  未压缩文件的大小
  压缩比
  未压缩文件的名字
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
假设一个目录/home下有文件mm.txt、sort.txt、xx.com。
例1:把/home目录下的每个文件压缩成.gz文件。
$ cd /home
$ gzip *
$ ls
m.txt.gz sort.txt.gz xx.com.gz
例2:把例1中每个压缩的文件解压,并列出详细的信息。
$ gzip -dv *
mm.txt.gz 43.1%-----replaced with mm.txt
sort.txt.gz 43.1%-----replaced with sort.txt
xx.com.gz 43.1%-----replaced with xx.com
$ ls
mm.txt sort.txt xx.com

例3:详细显示例1中每个压缩的文件的信息,并不解压。
$ gzip -l *
compressed uncompr. ratio uncompressed_name
277 445 43.1% mm.txt
278 445 43.1% sort.txt
277 445 43.1% xx.com
$ ls
mm.txt.gz sort.txt.gz xx.com.gz
例4:压缩一个tar备份文件,如usr.tar,此时压缩文件的扩展名为.tar.gz
$ gzip usr.tar
$ ls
usr.tar.gz