tar bak详解
时间:2008-09-04 来源:ubuntuer
# 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包中所有文件,-x是解包的意思
以上就是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这个参数来调用bzip2。下面来举例说明一下:
# tar -cjf all.tar.bz2 *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且调用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2
# tar -xjf all.tar.bz2
这条命令是将上面产生的包解开。
3)tar调用compress
# tar -czf all.tar.Z *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且调用compress压缩,生成一个uncompress压缩过的包,包名为all.tar.Z
# tar -xzf all.tar.Z
这条命令是将上面产生的包解开
常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们:
1)对于.zip
# zip all.zip *.jpg
这条命令是将所有.jpg的文件压缩成一个zip包
注意:如果要压缩的是个文件夹,则要加上-r参数,表示调用递归压缩,如:
zip -r temp.zip temp
# unzip all.zip
这条命令是将all.zip中的所有文件解压出来
要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,
# rar a all *.jpg
这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar 扩展名将自动附加到包名后。
# unrar e all.rar
这条命令是将all.rar中的所有文件解压出来
正个data文件夹数据有6G大,我想data文件下每50个文件打包压缩,怎么用SHELL解决
我的data文件夹目录中以每天日期为文件夹名存放着数据,
data
|
----20050821
----20050822
----20050822
正个data文件夹数据有6G大,我想data文件下每50个文件打包压缩,怎么用SHELL解决,
二,
试想data文件中有几百个文件,
data
|
--log 文件
--feaf
--464
--646
如果我想删除feaf,646以外的文件,怎么解决
第二个问题easy
ls|grep -vE '^feaf$|^646$'|rm
对于第一个问题可用如下代码: (我习惯安数值方式排列,所以用了sort -g)
#!/bin/bash |