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 .
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章