美文网首页
tar压缩解压缩

tar压缩解压缩

作者: 全栈未遂工程师 | 来源:发表于2016-09-20 16:06 被阅读224次

    参考文章1
    参考文章2

    压缩

    tar zcvf 文件名.tar.gz 待压缩文件名
    tar -cvf **.tar *.jpg将所有的jpg文件打包

    可以先切换到当前目录下。压缩文件名和被压缩文件名都可以加路径。

    tar -cvf /tmp/etc.tar /etc    <==仅打包,不压缩!
    tar -zcvf /tmp/etc.tar.gz /etc  <==打包后,以 gzip 压缩
    tar -jcvf /tmp/etc.tar.bz2 /etc  <==打包后,以 bzip2 压缩
    

    压缩并排除某些目录或文件

    tar zcvf fd.tar.gz * --exclude=file1 --exclude=dir1

    注意:

    • --exclude=file1 而不是 --exclude file1
    • 要排除一个目录是--exclude=dir1而不是--exclude=dir1/
      也可以在父目录打包
      tar zcvf fd.tar.gz pardir --exclude=pardir/file1 --exclude=pardir/dir1

    tar zcvf backup_1.tar.gz /opt/data --exclude=resource*
    在打包/opt/data时就排除了resource命名的目录和文件
    如果想不包含部分的特定文件列表,可以把不包含的文件放到一个文件ext.txt,然后
    tar zcvf backup_1.tar.gz /opt/data --exclude=resource* -X ext.txt
    就可以了。
    我的ext.txt文件内容如下:

    $ cat /tmp/ext.txt  
    /opt/data/devs/locks/db-logs.lock
    /opt/data/devs/locks/db.lock
    /opt/data/devs/hooks/post-revprop-change.tmpl
    /opt/data/devs/hooks/pre-lock.tmpl
    /opt/data/devs/hooks/post-unlock.tmpl
    /opt/data/devs/db/transactions
    /opt/data/devs/db/txn-current-lock
    /opt/data/devs/db/write-lock
    /opt/data/devs/db/format
    /opt/data/devs/conf/passwd
    

    这样就可以在打包的时候不包含以上的文件或者目录。

    解压

    tar zxvf 文件名.tar.gz

    解压后的文件只能解压到当前目录。

    • 只解压压缩包中的某个文件

    我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已
    tar -zxvf /tmp/etc.tar.gz etc/passwd,注意etc/passwd前面的根目录/被去除了。

    • 压缩的时候排除目录
      我要备份/home, /etc,但不要/home/dmtsai
      tar -zcvf myfile.tar.gz /home/* /etc --exclude=/home/dmtsai

    查看压缩文件中有哪些文件

    tar -ztvf /tmp/etc.tar.gz

    z是说明用gzip压缩的,t是查看,v是显示过程,f是档名

    tar的C参数

    tar -cvf file2.tar /home/usr2/file2

    该命令可以将/home/usr2/file2文件打包到当前目录下的file2.tar中,需要注意的是:使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(这里是home/usr2/,根目录'/'被自动去掉了)一并被压缩进来
    解压缩后的文件名不是想象中的file2,而是home/usr2/file2

    tar -cvf file2.tar -C /home/usr2 file2
    该命令中的-C dir参数,将tar的工作目录从当前目录改为/home/usr2,将file2文件(不带绝对路径)压缩到file2.tar中。注意:-C dir参数的作用在于改变工作目录,其有效期为该命令中下一次-C dir参数之前
    使用tar的-C dir参数,同样可以做到在当前目录/home/usr1下将文件解压缩到其他目录,例如:
    tar -xvf file2.tar -C /home/usr2
    而tar不用-C dir参数时是无法做到的:

    `tar -xvf file2.tar /home/usr2`
    tar: /tmp/file: Not found in archive
    tar: Error exit delayed from previous errors
    

    tar语法

    tar 主选项[辅助选项] 文件或者目录

    主选项是必须要有的,有且只能有一个,辅助选项可以有多个。

    主选项

    选项 描述
    c 创建打包文件
    x 解压
    t 查看内容
    r 向压缩归档文件末尾追加文件
    u 更新原来的压缩包中的文件

    辅助选项

    选项 描述
    z 是否具有gzip属性,即是否gzip压缩解压缩。格式为.tar.gz或.tgz
    j 是否具有bzip2属性,即是否需要bzip2压缩解压缩。格式为**.tar.bz2
    v 压缩过程中显示文件过程(常用)
    f 是否使用档案名字,注意使用f之后要立即接档案名字,后面不能再有其他参数(该参数必须有)
    p 使用原文件的原来属性(属性不会根据使用者而变)

    相关文章

      网友评论

          本文标题:tar压缩解压缩

          本文链接:https://www.haomeiwen.com/subject/rcdoettx.html