标题:tar命令详解 出处:Felix021 时间:Thu, 22 Nov 2007 17:59:05 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?429 内容: tar命令详解 From:http://hi.baidu.com/andsky/blog/item/c17bf819b007597adab4bd2e.html 格式: 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 . Generated by Bo-blog 2.1.0