zoukankan      html  css  js  c++  java
  • linux基础命令:tar

    1.命令格式:

      tar[必要参数][选择参数][文件] 

    2.命令功能:

      用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的 

    3.命令参数:

      必要参数有如下:

      -A 新增压缩文件到已存在的压缩

      -B 设置区块大小

      -c 建立新的压缩文件

      -d 记录文件的差别

      -r 添加文件到已经压缩的文件

      -u 添加改变了和现有的文件到已经存在的压缩文件

      -x 从压缩的文件中提取文件

      -t 显示压缩文件的内容

      -z 支持gzip解压文件

      -j 支持bzip2解压文件

      -Z 支持compress解压文件

      -v 显示操作过程

      -l 文件系统边界设置

      -k 保留原有文件不覆盖

      -m 保留文件不被覆盖

      -W 确认压缩文件的正确性

       可选参数如下:

      -b 设置区块数目

      -C 切换到指定目录

      -f 指定压缩文件

      --help 显示帮助信息

      --version 显示版本信息

    4.常见解压/压缩命令

    解包:tar xvf FileName.tar
    打包:tar cvf FileName.tar DirName
    (注:tar是打包,不是压缩!)
    
    
    .gz
    解压1:gunzip FileName.gz
    解压2:gzip -d FileName.gz
    压缩:gzip FileName
    
    .tar.gz 和 .tgz
    解压:tar zxvf FileName.tar.gz
    压缩:tar zcvf FileName.tar.gz DirName
    
    .bz2
    解压1:bzip2 -d FileName.bz2
    解压2:bunzip2 FileName.bz2
    压缩: bzip2 -z FileName
    
    
    .tar.bz2
    解压:tar jxvf FileName.tar.bz2
    压缩:tar jcvf FileName.tar.bz2 DirName
    
    .bz
    解压1:bzip2 -d FileName.bz
    解压2:bunzip2 FileName.bz
    压缩:未知
    
    .tar.bz
    解压:tar jxvf FileName.tar.bz
    压缩:未知
    
    .Z
    解压:uncompress FileName.Z
    压缩:compress FileName
    
    .tar.Z
    解压:tar Zxvf FileName.tar.Z
    压缩:tar Zcvf FileName.tar.Z DirName
    
    .zip
    解压:unzip FileName.zip
    压缩:zip FileName.zip DirName
    
    .rar
    解压:rar x FileName.rar
    压缩:rar a FileName.rar DirName 

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

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

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

    [root@linux ~]# tar -cjvf /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 -tzvf /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 -xzvf /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 -xzvf /tmp/etc.tar.gz etc/passwd

    # 我可以透过 tar -tzvf 来查阅 tarfile 内的文件名称,如果单只要一个档案,

    # 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

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

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

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

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

    [root@linux ~]# tar -N '2005/06/01' -czvf home.tar.gz /home

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

    [root@linux ~]# tar --exclude /home/dmtsai -czvf 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 时,再次提到这个指令跟大家再解释啰!

    ++++++++++++++++++++++++++++++++++++++++++++

    tar如何解压文件到指定的目录?
    tar czvf mysql.tar.gz /var/lib/mysql
    压缩的文件,我想解压到当前目录下,而不是绝对路径下,该如何解压?
    tar cxvf mysql.tar.gz 的话,会覆盖 /var/lib/mysql 下全部文件吧?我现在就一个表坏了,想单独恢复一个表的资料,而不是恢复全部数据库,所以要解压到指定的目录下,再把那个表资料找不来恢复。

    ============================================

    #tar zxvf mysql.tar.gz -C /home/aaa

    ============================================

    tar zxvf mysql.tar.gz -C /home/aaa
    这样的话,解压后的目录结构是怎么样的?
    /home/aaa/var/lib/mysql 吗?

    ============================================ 

    试下就知道了....

    ============================================

    归档里面的所有文件均是相对引用,归档解压缩(释放)在了当前目录。归档文件总是释放到当前目录,为的是防止破坏文件系统中重名的文件。
    所以,楼主的解压缩不会覆盖/var/lib/mysql,只会释放在当前目录先,即./var/lib/mysql如果想覆盖的话,在归档和解压时请使用-P参数:
    tar zcvf mysql.tar.gz -P /var/lib/mysql
    tar -Pzxvf mysql.tar.gz
  • 相关阅读:
    友盟上报 IOS
    UTF8编码
    Hill加密算法
    Base64编码
    Logistic Regression 算法向量化实现及心得
    152. Maximum Product Subarray(中等, 神奇的 swap)
    216. Combination Sum III(medium, backtrack, 本类问题做的最快的一次)
    77. Combinations(medium, backtrack, 重要, 弄了1小时)
    47. Permutations II(medium, backtrack, 重要, 条件较难思考)
    3.5 find() 判断是否存在某元素
  • 原文地址:https://www.cnblogs.com/wzy23/p/11380161.html
Copyright © 2011-2022 走看看