• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

[原创]也谈tar命令

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网
怎样使用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 (C) 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(C)
#
#        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 .

 meteor06 回复于:2003-09-25 08:24:15
不错,鼓励原创

 yutian 回复于:2003-09-25 09:01:07
顶一下

 sdccf 回复于:2003-09-25 09:08:51
搞个中文的也许更适合初学者。

 saintdragon 回复于:2003-09-25 09:13:07
楼主应该翻译一下,初学者都希望快速学习。

 simbasun 回复于:2003-09-25 10:50:59
顶。。

 hello_unix 回复于:2003-09-25 16:42:15
怎样使用tar命令打包(备份)文件? 
A:tar命令的语法如下: 
tar [参数][文件] 
最经常使用的参数是: 
c 创建一个新的备份,覆盖已存在的任何目标文件。 
x 从备份介质中释放文件。 
t 列出备份介质中的内容。 
v 显示每个被处理的文件名。 
f 备份到指定的设备上。 
u 如果一些文件备份中没有或者经过修改以后,向备份文件中追加文件 

步骤: 
1)估算打包文件的大小,确定使用档案媒体(archive media)的空间,用命令du -s 
例如: 
$ lf 
a.out* fork.c mbox time.c 
atoi.c int.c memcpy.c vi 
$
$ du -s 
296 . 

该例显示的296代表总计多少个块(1块=512字节),计算:512*296/1024=148kB. 
2)制作备份,用命令tar cvf /dev/fd0135ds18 .(将该目录下的所有内容备份到1.44英寸软盘中这里参数 c 表示要创建一个新的备份,v 的作用是在备份过程中将显示每一个文件名, f 用来指定下一个参数--/dev/fd0135ds18 为备份的目标设备.) 
注:平时硬盘上的备份,我们一般用命令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 

# Santa Cruz Operation, Inc. 版权所有(1987-1994)。
# 这里的信息用于声明 Santa Cruz 公司对该产品的专有权利。对于专利协议授权的
#用途,只要用户同意保留本声明相关的其他专利声明,用户可以使用,修改甚至把代码
#集成到别的产品中,本文件中的信息不提供任何担保 

# 默认的/tar - 存档设备: tar(C) 

# 设备 块 大小 磁带 

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 

# 没有数字参数或者"-f device" 参数时 
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 .

 meteor06 回复于:2003-09-25 17:14:47
感谢 hello_unix    给做的翻译,
thanks  ;)

 gunguymadman007 回复于:2003-09-26 11:58:11
到处都是强人

 雪之羽 回复于:2003-09-29 23:07:00
好……

 dadaball 回复于:2003-09-29 21:13:25
谢谢大家支持,你们的鼓励使我马上完成了第二篇文章“ [原创]590是怎样驱近于918的?”,希望你们能从中学到点东西。

 仙蒂蕾啦 回复于:2003-09-29 14:39:28
支持

 wooph 回复于:2003-09-29 17:55:32
应该设坛--------开课 :)

 hnly 回复于:2003-09-29 22:32:23
ok

 feiyan 回复于:2003-09-30 09:03:15
ding......

 dudo 回复于:2003-09-30 11:02:14
我也ding一下吧

 可怜的笨笨鱼 回复于:2003-10-01 07:55:04
好!

 老农 回复于:2003-10-01 15:28:27
中间的文件名写得多了一点,影响阅读。
其实英文好的话,直接看man更全面。

值得鼓励:)

 tom325 回复于:2003-10-12 18:36:05
太简单了
不详细

 云中飘 回复于:2003-10-13 08:52:21
谢谢咯!老大!

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网