Linux下压缩与解压缩 tar命令 具体的可以在linux环境下 用tar –help查看详细说明
tar命令:
tar [option…] [文件与目录 …]
示例:
tar -cf archive.tar foo bar # 打包foo和bar文件到archives.tar tar -tvf archive.tar # 列出archives.tar中的所有文件 tar -xf archive.tar # 解压缩archive.tar文件
参数:
-c:建立一个压缩文件的参数指令(create)
-x:解压缩一个文件的参数指令(extract)
-t:查看压缩文件里面的文件(list)
-r:向压缩归档文件末尾追加文件(append)
-u:更新原压缩包中的文件(update)
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
–exclude FILE:在压缩的过程中,不要将 FILE 打包!
下面的参数-f是必须的
-f :使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
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是解开的意思
范例:
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
tar -cvf /tmp/etc.tar /etc #仅打包,不压缩! tar -zcvf /tmp/etc.tar.gz /etc #打包后,以 gzip 压缩 tar -jcvf /tmp/etc.tar.bz2 /etc #打包后,以 bzip2 压缩
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/” from member names』那是关于绝对路径的特殊设定。
范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
tar -ztvf /tmp/etc.tar.gz
# 就得要加上 z 这个参数了!这很重要的!
范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
cd /usr/local/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文件 解压缩,即只解压压缩包中的etc/passwd文件
cd /tmp tar -zxvf /tmp/etc.tar.gz etc/passwd
# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!
范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
tar -zxvpf /tmp/etc.tar.gz /etc
范例六:在 /home 当中,比 2005/06/01 新的文件才备份
tar -N "2005/06/01" -zcvf home.tar.gz /home
范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
cd /tmp tar -cvf - /etc | tar -xvf -
# 要注意的地方在于输出档变成 – 而输入档也变成 – ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!
总结:
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压