打包解压(tar,uzip)命令实用总汇

  • Post author:
  • Post category:其他


(.zip)  zip unzip

(.gz) gzip gunzip

(.bz2) bzip2 bunzip2   -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩

(.Z) compress uncompress

(.tar.gz) tar zxvf xvf     -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩

(.tar) tar xvf  cvf

(.bin) 源程序编译后的机器语言   #chmod u+x x.bin  # ./x.bin


bunzip2

Python-3.1.2

.tar.bz2



tar -xvf

Python-3.1.2.

tar

——–tar参数:

参数:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。


-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩


-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!

-p :使用原文件的原来属性(属性不会依据使用者而变)

-P :可以使用绝对路径来压缩!

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

追加打包文件:


tar rvf file.tar file8

如果想查看在一个档案中存储着哪些文件,可以使用tar命令和t选项。下面命令列出所有存储在myarch.tar档案中的文件:

#

tar tf myarch.tar

tar -tf 1.tar|grep ‘1\.txt’

tar xvf 1.rar  查看打包文件

tar xvf 1.rar 1.txt 解压某个文件


tar zxvf lua.tar.gz -C /tmp/lua/lua/  解压到某个已存在的目录下


先压缩(压缩包内包含主目录webauth)


tar zcvf webauth.tar.gz webauth/


再解压


tar zxvf webauth.tar.gz -C /var/www/

剔除目录和文件log


tar zcvf nagios.tar.gz nagios/ –exclude nagios/share/perfdata –exclude “*.log”


#根据文件列表压缩变更升级包


tar -czv -T $svn_details_log -f $tar_bak_file

拼接两个归档文件(将file2.tar的内容合并到file1.tar):

tar -Af file1.tar file2.tar

从归档中删除文件(–delete):

tar -f archive.tar –delete file1 file2

tar –delete –file archive.tar [FILE LIST]

归档时排除部分文件

tar -cf arch.tar * –exclude “*.txt”

归档时排除文件列表

tar -cf rch.tar -x list

排除版本控制目录

tar –exclude-vcs -czvvf source_code.tar.gz eye_of_gnome_svn

————————- unzip




进入/sc/目录,压缩所有目录文件;


cd /tmp/sc/

#

解压到当前目录



unzip -o sc.zip

功能说明:解压缩zip文件

语  法:unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]

补充说明:unzip为.zip压缩文件的解压缩程序。

参  数:

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。

-f 更新现有的文件。

-l 显示压缩文件内所包含的文件。

-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

-t 检查压缩文件是否正确。

-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。

-v 执行是时显示详细的信息。

-z 仅显示压缩文件的备注文字。

-a 对文本文件进行必要的字符转换。

-b 不要对文本文件进行字符转换。

-C 压缩文件中的文件名称区分大小写。

-j 不处理压缩文件中原有的目录路径。

-L 将压缩文件中的全部文件名改为小写。

-M 将输出结果送到more程序处理。

-n 解压缩时不要覆盖原有的文件。


-o 不必先询问用户,unzip执行后覆盖原有文件



-P<密码> 使用zip的密码选项。

-q 执行时不显示任何信息。

-s 将文件名中的空白字符转换为底线字符。

-V 保留VMS的文件版本信息。

-X 解压缩时同时回存文件原来的UID/GID。

[.zip文件] 指定.zip压缩文件。

[文件] 指定要处理.zip压缩文件中的哪些文件。

-d<目录> 指定文件解压缩后所要存储的目录。

-x<文件> 指定不要处理.zip压缩文件中的哪些文件。

-Z unzip -Z等于执行zipinfo指令


——————————tar调用gzip——- 参数-z

gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下:

# tar zcvf all.tar.gz *.jpg这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz

# tar zxvf all.tar.gz这条命令是将上面产生的包解开。

———————tar调用bzip2——— 参数-j


bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例说明一下:

# tar jcvf all.tar.bz2 *.jpg这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2

# tar jxvf all.tar.bz2这条命令是将上面产生的包解开。

————————-tar调用compress      参数-Z


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包


清理临时文件的命令如下:

make clean

如果要卸载,则执行如下的命令。

make uninstall


*.tar.gz/*.bz2形式的二进制软件包是用tar工具来打包、用gzip/bzip2压缩的,安装时直接解包即可。对于解压后只有单一目录的软件,卸载时用命令“rm -rf 软件目录名”;

如果解压后文件分散在多处目录中,则必须一一手动删除(稍麻烦),

想知道

解压时向系统中安装了哪些文件,可以用命令“tar ztvf *.tar.gz”/“tar ytvf *.bz2”获取清单

。tar的参数z是调用gzip解压,

x是解包,v是校验,f是显示结果

,y是调用bzip2解压

,t是列出包的文件清单

。更多的参数请参看手册页:man tar。

tar [-cxtzjvfpPN] 文件与目录 ….

–exclude FILE:在压缩的过程中,不要将 FILE 打包!

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩

[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file

# 如果加 j 参数,则以 .tar.bz2 来作为附档名

# 上述指令在执行的时候,会显示一个警告讯息:

# 『tar: Removing leading `/’ from member names』那是关於绝对路径的特殊设定。

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

[root@linux ~]# tar -ztvf /tmp/etc.tar.gz

# 我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数!这很重要!

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

[root@linux ~]# cd /usr/local/src

[root@linux src]# tar -zxvf /tmp/etc.tar.gz

# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,则解开的目录会在 /usr/local/src/etc.另外,如果您进入 /usr/local/src/etc,则会发现,该目录下的文件属性与 /etc/ 可能会有所不同

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

# 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉!

范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!

[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc

# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份

[root@linux ~]# tar -N ‘2005/06/01’ -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai

[root@linux ~]# tar –exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -cvf – /etc | tar -xvf –

# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!

# 要注意的地方在於输出档变成 – 而输入档也变成 – ,又有一个 | 存在~

# 这分别代表 standard output, standard input 与管线命令!

# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释!


——————————————-gzip, zcat 命令

[root@linux ~]# gzip [-cdt#] 档名

[root@linux ~]# zcat 档名.gz

参数:

-c :将压缩的资料输出到萤幕上,可透过资料流重导向来处理;

-d :解压缩的参数;

-t :可以用来检验一个压缩档的一致性~看看文件有无错误;

-# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6


[root@linux ~]# cd /tmp

[root@linux tmp]# cp /etc/man.config .

[root@linux tmp]# gzip man.config

此时 man.config 会变成 man.config.gz !


gzip -d xiaobear_dy199com.sql.gz

用最佳的压缩比压缩,并保留原本的文件