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

    tar
    格式: tar [选项] [文件目录列表]
    功能: 对文件目录进行打包备份
    选项:
    -c 建立新的归档文件
    -r 向归档文件末尾追加文件
    -x 从归档文件中解出文件
    -O 将文件解开到标准输出
    -v 处理过程中输出相关信息
    -f 对普通文件操作
    -z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
    -Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩

    1.用tar打包一个目录下的文件:#tar -cvf /mnt/lgx/a1.doc
    生成一个以.tar为扩展名的打包文件

    2.用tar解开打包文件:#tar -xvf /mnt/lgx/a1.doc.tar
    通常情况下,tar打包与gzip(压缩)经常联合使用。方法:
    首先用tar打包,如:#tar -cvf /mnt/lgx/a1.doc (产生a1.doc.tar文件)
    然后用gzip压缩a1.doc.tar文件,如:#gzip /mnt/lgx/a1.doc.tar (产生a1.doc.tar.gz文件)
    3.解压a1.doc.tar.gz文件
    方法1:
    #gzip -dc /mnt/lgx/a1.doc.tar.gz (产生a1.doc.tar文件)
    #tar -xvf /mnt/lgx/a1.doc.tar (产生a1.doc文件)
    这两次命令也可使用管道功能,把两个命令合二为一:
    #gzip -dc /mnt/lgx/a1.doc.tar.gz | tar -xvf
    方法2:使用tar提供的自动调用gzip解压缩功能
    #tar -xzvf /mnt/lgx/a1.doc.tar.gz
    经过tar打包后,也可用compress命令压缩(注:gzip比compress压缩更加有效),产生一个以.tar.Z的文件,在解包时,可先用 “uncompress 文件名”格式解压,然后用“tar -xvf 文件名”解包。也可直接调用“tar -Zxvf 文件名”解包。


    tar命令详解(很好的中文说明)
    怎样使用tar命令打包(备份)文件?
    A:The syntax of tar is:
    tar [options][files]
    The options used most often with tar are as follows:
    c Creates a new backup,overwriting any files already on the backup destination.
    x Extracts files from backup media.
    t Lists the contents of backup media.
    v Displays the name of each file being processed.
    f Creates backups on a specified device.
    u Adds files to the backup if they are not already there,or if they have been modified since they were last written on the backup.
    步骤:
    1)估算打包文件的大小,确定使用档案媒体(archive media)的空间,用命令du -s
    例如:
    $ lf
    a.out* fork.c mbox time.c
    atoi.c int.c memcpy.c vi
    $ du -s
    296 .
    $
    该例显示的296代表the total number of 512-byte blocks,计算:512*296/1024=148kilobytes.
    2)制作备份,用命令tar cvf /dev/fd0135ds18 .(将该目录下的所有内容备份到1.44英寸软盘中 where c causes a new backup to be created,v causes each file to be displayed as the backing up takes place,and f causes the subsequent argument–/dev/fd0135ds18 to be the destination of the backup.)
    注:平时硬盘上的备份,我们一般用命令tar cvf filename.tar .
    例如:
    $ tar cvf wuyd.tar .
    a ./.profile 2 tape blocks
    a ./.lastlogin 0 tape blocks
    a ./mbox 10 tape blocks
    a ./fork.c 2 tape blocks
    a ./memcpy.c 1 tape blocks
    a ./.sh_history 3 tape blocks
    a ./a.out 91 tape blocks
    a ./time.c 1 tape blocks
    a ./vi 169 tape blocks
    a ./int.c 1 tape blocks
    a ./atoi.c 1 tape blocks
    tar: same as archive file: ./wuyd.tar
    a ./.scoadmin.pref 1 tape blocks
    $ lf
    a.out* fork.c mbox time.c wuyd.tar
    atoi.c int.c memcpy.c vi
    我们还可以用命令tar cvf /dev/fd0135ds18 ./filename将该目录下的名为filename的文件备份到archive media中
    怎样列出tar文档的内容?
    A:tar tvf /dev/fd0135ds18
    tar tvf filename.tar
    例如:
    $ tar tvf wuyd.tar
    tar: blocksize = 20
    rw——-203/50 896 Sep 17 15:07 2003 ./.profile
    r——–203/21 0 Sep 24 19:49 2003 ./.lastlogin
    rw——-203/50 4720 Sep 21 11:17 2003 ./mbox
    rw-r–r–203/50 583 Sep 17 15:27 2003 ./fork.c
    rw-r–r–203/50 218 Sep 17 20:22 2003 ./memcpy.c
    rw——-203/50 1474 Sep 24 20:26 2003 ./.sh_history
    rwxr-xr-x203/50 46224 Sep 22 21:00 2003 ./a.out
    rw-r–r–203/50 341 Sep 19 09:02 2003 ./time.c
    rw-r–r–203/50 86283 Sep 21 09:14 2003 ./vi
    rw-r–r–203/50 93 Sep 21 10:53 2003 ./int.c
    rw-r–r–203/50 144 Sep 22 21:00 2003 ./atoi.c
    rw-r–r– 0/3 41 Sep 23 20:34 2003 ./.scoadmin.pref
    $
    怎样从tar文档中导出文件?
    A:tar xvf /dev/fd0135ds18
    tar xvf filename.tar
    例如:
    $ mkdir uu;cp wuyd.tar ./uu
    $ lf
    a.out* fork.c mbox time.c vi
    atoi.c int.c memcpy.c uu/ wuyd.tar
    $ cd uu
    $ tar xvf wuyd.tar
    tar: blocksize = 20
    x ./.profile, 896 bytes, 2 tape blocks
    x ./.lastlogin, 0 bytes, 0 tape blocks
    x ./mbox, 4720 bytes, 10 tape blocks
    x ./fork.c, 583 bytes, 2 tape blocks
    x ./memcpy.c, 218 bytes, 1 tape blocks
    x ./.sh_history, 1474 bytes, 3 tape blocks
    x ./a.out, 46224 bytes, 91 tape blocks
    x ./time.c, 341 bytes, 1 tape blocks
    x ./vi, 86283 bytes, 169 tape blocks
    x ./int.c, 93 bytes, 1 tape blocks
    x ./atoi.c, 144 bytes, 1 tape blocks
    x ./.scoadmin.pref, 41 bytes, 1 tape blocks
    $
    我们可用命令tar xvf /dev/fd0135ds18 ./filename导出archive media中的单个文件
    例如:
    $ lf
    wuyd.tar
    $ tar xvf wuyd.tar ./time.c
    tar: blocksize = 20
    x ./time.c, 341 bytes, 1 tape blocks
    $ lf
    time.c wuyd.tar
    $
    怎样使用tar命令提供的简写形式?
    A:
    $ more /etc/default/tar
    # @(#) def135.src 25.2 94/07/25
    #
    # Copyright © 1987-1994 The Santa Cruz Operation, Inc.
    # All Rights Reserved.
    # The information in this file is provided for the exclusive use of
    # the licensees of The Santa Cruz Operation, Inc. Such users have the
    # right to use, modify, and incorporate this code into other products
    # for purposes authorized by the license agreement provided they include
    # this notice and the associated copyright notice with any such product.
    # The information in this file is provided “AS IS” without warranty.
    #
    # default/tar - archive devices: tar©
    #
    # device block size tape
    #
    archive0=/dev/rfd048ds9 18 360 n
    archive1=/dev/rfd148ds9 18 360 n
    archive2=/dev/rfd096ds15 10 1200 n
    archive3=/dev/rfd196ds15 10 1200 n
    # archive4=/dev/rfd096ds9 18 720 n
    archive4=/dev/rfd0135ds9 18 720 n
    archive5=/dev/rfd1135ds9 18 720 n
    # archive5=/dev/rfd196ds9 18 720 n
    archive6=/dev/rfd0135ds18 18 1440 n
    archive7=/dev/rfd1135ds18 18 1440 n
    archive8=/dev/rct0 20 0 y
    archive9=/dev/rctmini 20 0 y
    archive10=/dev/rdsk/fp03d 18 720 n
    archive11=/dev/rdsk/fp03h 18 1440 n
    archive12=/dev/rdsk/fp03v21 10 20330 n
    #
    # The default device in the absence of a numeric or “-f device” argument
    archive=/dev/rfd0135ds18 18 1440 n
    $
    从上面可以看出4代表/dev/rfd0135ds9设备,而默认的设备是/dev/rfd0135ds18,所以tar xvf /dev/rfd0135ds9 ./filename可以简写为tar xv4 ./filename,而 tar cvf /dev/fd0135ds18 .可以简写为tar cv。

  • 相关阅读:
    RecyclerView与各种异步图片加载框架不兼容的问题
    课内上机实验3——括号匹配(栈)
    课内上机实验3——删除重复元素
    课内上机实验3——数组内移动0元素至末尾
    课内上机实验3——M集合问题(队列)
    递归实践1——Cnm组合数计算
    【转】Quine的编写
    【转】fork函数详解
    【转】Makefile详解
    VC++6.0程序安装
  • 原文地址:https://www.cnblogs.com/rosesmall/p/2469288.html
Copyright © 2011-2022 走看看