linux命令之tar解压压缩
tar
tar(全称:tape archive )命令⽤于备份⽂件。tar 是⽤来创建或者还原备份⽂件的⼯具程序,它可以加⼊,解开备份⽂件内的⽂件。
语法
tar [主选项 + 辅选项] ⽂件或⽬录
使⽤该命令时,主选项必须有,它告诉tar要做什么事情,辅选项是辅助使⽤的,可以选⽤。
主选项:【⼀条命令下⾯的5个参数只能有⼀个,不能同时存在】
-c: --create 新建⼀个压缩⽂档,即打包
-x: --extract,--get解压⽂件
-t: --list,查看压缩⽂档⾥的所有内容
-r:--append 向压缩⽂档⾥追加⽂件
-u:--update 更新原压缩包中的⽂件
辅助选项:
-z:是否同时具有gzip的属性?即是否需要⽤gzip压缩或解压?⼀般格式为或xx.tgz
-j:是否同时具有bzip2的属性?即是否需要⽤bzip2压缩或解压?⼀般格式为xx.tar.bz2
-v:显⽰操作过程!这个参数很常⽤
-f:使⽤⽂档名,注意,在f之后要⽴即接⽂档名,不要再加其他参数!
-C:切换到指定⽬录
--exclude FILE:在压缩过程中,不要将FILE打包
实例
1. 打包
$ tar -cvf img.tar img1 img2
2. 不解压查看
$ tar -tvf img.tar
3. 解压
$ tar -xvf ./img.tar
4. 只解压某个⽬录
$ tar -xvf ./img.tar img1
5. 更新压缩包
给img1⽂件下新建⼀个⽂件,然后更新img.tar
$ tar -cvf img.tar img1 img2
# 给img1增加了⼀张照⽚,现在⽤下⾯命令更新img.tar
$ tar -uvf img.tar img1
6. 追加
$ tar -cf img.tar img1 img2
# img.tar⾥追加⼀个⽂件夹img3
$ tar -rf img.tar img3
linux所有命令都无法使用7. -C 参数
-C 参数⾮常有⽤,改变⽂件⽬录,多层级时使⽤。 -C, --directory=DIR ( change to directory DIR )
使⽤了-C 参数改变⽬录为 -C 后⾯的⽬录,不管是在打包还是解压都很有⽤。
语法:tar temp.tar -C fileDir file
$ cd temp
$ ls
img1  img2  img3
$ tar -cvf img.tar temp/*
# 这样打包会将temp⽬录也打包进去,使⽤下⾯带有-C参数的命令可以去掉路径信息
$ tar -cvf img.tar -C temp .
解压 img.tar 到当前⽬录下的 temp ⽬录
$ tar -xvf img.tar -C temp
附录:
   $ tar -cvf image.tar /home/usr/image
   tar: Removing leading '/' from members names
   /home/usr/image
   该命令可以将/home/usr/image⽂件打包到当前⽬录下的image.tar中,需要注意的是:使⽤绝对路径标识的源⽂件,在⽤tar命令压缩后,⽂件名连同绝对路径(这⾥是home/usr/,根⽬录'/'被⾃动去掉了)⼀并被压缩进来。使⽤tar命令解压缩后会出现以下情况:
   $ tar -xvf image.tar
   解压缩后的⽂件名不是想象中的image,⽽是home/usr/image。
   $ tar -cvf image.tar -C /home/usr/ image
   该命令中的-C dir参数,将tar的⼯作⽬录从当前⽬录改为/home/usr/,将image⽂件(不带绝对路径)压缩到image.tar中。
注意:-C dir参数的作⽤在于改变⼯作⽬录,其有效期为该命令中下⼀次-C dir参数之前。
   使⽤tar的-C dir参数,同样可以做到在当前⽬录/root下将⽂件解压缩到其他⽬录,例如:
   $ tar -xvf image.tar -C /home/user
   ⽽tar不⽤-C dir参数时是⽆法做到的:
   $ tar -xvf image.tar /root
   tar: /tmp/file: Not found in archive
   tar: Error exit delayed from previous errors

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。