zoukankan      html  css  js  c++  java
  • tar命令的详解

    tar命令

    [root@linux ~]# tar [-cxtzjvfpPN] 文件与文件夹 ....
    參数:
    -c :建立一个压缩文件的參数指令(create 的意思);
    -x :解开一个压缩文件的參数指令!
    -t :查看 tarfile 里面的文件!
    特别注意,在參数的下达中, c/x/t 仅能存在一个!不可同一时候存在!
    由于不可能同一时候压缩与解压缩。
    -z :是否同一时候具有 gzip 的属性?亦即是否须要用 gzip 压缩?
    -j :是否同一时候具有 bzip2 的属性?亦即是否须要用 bzip2 压缩?
    -v :压缩的过程中显示文件!这个经常使用,但不建议用在背景运行过程!
    -f :使用档名,请留意,在 f 之后要马上接档名喔!不要再加參数!
       比如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
       『 tar -zcvPf tfile sfile』才对喔!
    -p :使用原文件的原来属性(属性不会根据使用者而变)
    -P :能够使用绝对路径来压缩!
    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件里!
    --exclude FILE:在压缩的过程中,不要将 FILE 打包!


    范例:

    范例一:将整个 /etc 文件夹下的文件所有打包成为 /tmp/etc.tar
    [root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
    [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
    [root@linux ~]# tar -jcvf /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 -ztvf /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 -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 解开而已
    [root@linux ~]# cd /tmp
    [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
    # 我能够透过 tar -ztvf 来查阅 tarfile 内的文件名,假设单仅仅要一个文件,
    # 就能够透过这个方式来下达!注意到! etc.tar.gz 内的根文件夹 / 是被拿掉了!

    范例五:将 /etc/ 内的全部文件备份下来,而且保存其权限!
    [root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
    # 这个 -p 的属性是非常重要的,尤其是当您要保留原本文件的属性时!

    范例六:在 /home 其中,比 2005/06/01 新的文件才备份
    [root@linux ~]# tar -N '2005/06/01' -zcvf home.tar.gz /home

    范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
    [root@linux ~]# tar --exclude /home/dmtsai -zcvf 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 时,再次提到这个指令跟大家再解释啰!

  • 相关阅读:
    jvisualm 结合 visualGC 进行jvm监控,并分析垃圾回收
    linux 查看服务器cpu 与内存配置
    arthas 使用总结
    selinux contexts 安全上下文的临时更改
    Android 8.1 Doze模式分析(五) Doze白名单及Debug方式
    Window 任意窗口置顶软件Window TopMost Control
    Android ApkToolPlus一个可视化的跨平台 apk 分析工具
    SVN Please execute the 'Cleanup' command.
    Android 如何在64位安卓系统中使用32位SO库
    Android cmd命令查看apk是32位还是64位?
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4495643.html
Copyright © 2011-2022 走看看