zoukankan      html  css  js  c++  java
  • Ubuntu下tar命令详解使用

    式: tar 选项 文件目录列表
    功能: 对文件目录进行打包备份
    选项:
    -c 建立新的归档文件
    -r 向归档文件末尾追加文件
    -x 从归档文件中解出文件
    可以这样记忆,创建新的文件是c,追加在原有文件上用r,从文件中解压出用x

    -O 将文件解开到标准输出
    -v 处理过程中输出相关信息
    -f 对普通文件操作 

              ---似乎一直都要用f,不然的话,可能会不显示
    -z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
    -Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩

    -t :查看 tarfile 里面的文件!
    特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!

    -p :使用原文件的原来属性(属性不会依据使用者而变)
    -P :可以使用绝对路径来压缩!
    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
    --exclude FILE:在压缩的过程中,不要将 FILE 打包!


    例如:
    1.将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz,我们可以使用
    tar czvf this.tar.gz ./*.txt

    2.将当前目录下的this.tar.gz中的文件解压到当前目录我们可以使用
    tar xzvf this.tar.gz ./
    -------------
    longshuai实训:
    例子1:
    along@along-desktop:~$ pwd
    /home/along
    along@along-desktop:~$ tar czvf this.tar.gz ./*.txt
    ./linux代码.txt                             ------这里显示压缩的文件是什么,这里只有一个文件

    例子2:
    这时候在/home/along出现一个this.tar.gz文件,双击打开可以看见里面的文件或者用命令查看。
    查看文件内容
    along@along-desktop:~$ tar ztf this.tar.gz
    ./linux代码.txt                            ----显示文件内的是什么内容
    # 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
    # 就得要加上 z 这个参数了!这很重要的!longshuai测试到无论是否加z都是一样的结果

    例子3:
    下面解压
    along@along-desktop:~$ tar xzfv this.tar.gz  ./  --后面的./ 应该表示在文件的当前目录(./其实也可以不要的)
    ./linux代码.txt                             ---显示解压出来的文件

    要解压new.tar.gz目录下的tmp文件夹
    along@along-desktop:~$ tar xzvf  new.tar.gz ./new/tmp


    例子4:
    下面介绍怎么对文件夹操作
    把当前目录下的longshuai文件夹压缩到当前也目录
    along@along-desktop:~$ tar cvf longshuai.tar  ./longshuai <==仅打包,不压缩!
    ./longshuai/
    ./longshuai/linux代码.txt

    along@along-desktop:~$ tar -czvf longshuai.tar.gz ./longshuai <==打包后,用gzip压缩!
    ./longshuai/
    ./longshuai/linux代码.txt

    along@along-desktop:~$ tar -jcvf longshuai.tar.bz2 ./longshuai  <==打包后,用bzip2压缩!
    ./longshuai/
    ./longshuai/linux代码.txt

    # 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
    # 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
    # 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
    # 上述指令在执行的时候,会显示一个警告讯息:
    # 『tar: Removing leading `/' from member names』那是关於绝对路径的特殊设定


    例子5:
    将longshuai.tar.gz 解压到  /home/along/文档  文件夹(PS当前目录是在/home/along下 )
    along@along-desktop:~$ cd 文档     ---进入前目录下的文档目录
    along@along-desktop:~/文档$ pwd
    /home/along/文档
    along@along-desktop:~/文档$ tar -xzvf  ../longshuai.tar.gz   --..表示上一级目录
    ./longshuai/
    ./longshuai/linux代码.txt
    # 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
    # 我先将工作目录变换到   /home/along/文档 底下,并且解开  /home/along/longshuai.tar.gz ,
    # 则解开的目录会在 /home/along/文档 /longshuai!

    要解压new.tar.gz目录下的tmp文件夹
    along@along-desktop:~$ tar xzvf  new.tar.gz ./new/tmp  (后面的路径如果是压缩包压缩后存在的路径就是说明要解压的文件,如果不是,则指定的是压缩后文件的存放路径)

    例子6:
    现创建一个文件
    along@along-desktop:~/文档$ cd ..
    along@along-desktop:~$ pwd
    /home/along
    along@along-desktop:~$ tar cvfz  new.tar.gz ./new
    ./new/
    ./new/tmp/
    ./new/tmp/longshuai2.txt
    ./new/linux代码.txt

    例子7:
    我现在要解压new.tar.gz目录下的tmp文件夹
    along@along-desktop:~$ tar xzvf  new.tar.gz ./new/tmp
    ./new/tmp/
    ./new/tmp/longshuai2.txt
    这样就完成了new.tar.gz下tmp文件夹的解压

    例子8:
    将  /home/along/文档  内的所有文件备份下来,并且保存其权限!
    along@along-desktop:~$ tar zcvfp  back.tar.gz ./文档
    ./文档/
    ./文档/a1/
    ./文档/a1/a2/
    ./文档/a1/a2/a3/
    ./文档/a1/a2/a3/a4/
    ./文档/test1/
    ./文档/test/
    ./文档/test/1
    ./文档/test/obj/
    ./文档/test/obj/Debug/
    ./文档/test/test.layout
    ./文档/test/bin/
    ./文档/test/bin/Debug/
    ./文档/test/test.cbp
    ./文档/test/main.cpp
    # 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

    例子9:
    在 /home 当中,比 2010/01/01 新的文件才备份
    along@along-desktop:~$ tar -N '2010/01/01' -cvfz  back22.tar.gz ./文档
    tar: Option --after-date: Treating date `2010/01/01' as 2010-01-01 00:00:00
    tar: back22.tar.gz:无法 stat: 没有那个文件或目录
    ./文档/
    ./文档/a1/
    ./文档/a1/a2/
    ./文档/a1/a2/a3/
    ./文档/a1/a2/a3/a4/
    ./文档/test1/
    ./文档/test/
    tar: ./文档/test/1:文件未改变;未输出
    ./文档/test/obj/
    ./文档/test/obj/Debug/
    tar: ./文档/test/test.layout:文件未改变;未输出
    ./文档/test/bin/
    ./文档/test/bin/Debug/
    tar: ./文档/test/test.cbp:文件未改变;未输出
    ./文档/test/main.cpp
    tar: 由于前面延迟的错误而退出
    出现问题,不知道怎么解决

    例子10:
    我要备份 /new, 但不要 /new/tmp文件夹
    along@along-desktop:~$ tar -zcvf file.tar.gz ./new/ --exclude ./new/tmp
    ./new/
    ./new/ASasdas.txt
  • 相关阅读:
    第二次实验课总结
    第一次实验课总结
    文件操作
    事件监听 计算器界面
    个人信息
    学生成绩管理
    银行管理
    类的抽象与封装
    求最大公约数和最小公倍数
    阶乘
  • 原文地址:https://www.cnblogs.com/xu-neal/p/3749082.html
Copyright © 2011-2022 走看看