tar命令

tar命令主要用於對文件或目錄進行打包或解包html

語法參數

參數web

含義ide

說明網站

-zspa

ziphtm

使用zip進行解壓或壓縮ip

-jget

bzip2cmd

使用bzip2進行解壓或壓縮it

-c

create

建立一個打包文件

-x

extract

打開一個打包的文件

-v

verbose

顯示具體過程

-f

file

指定文件

-C

directory DIR

指定解壓的目錄

-p

permissions

保持文件的全部屬性

-P

absolute-names

保持絕對路徑開頭的"/"

-X

--exclude

排除不處理的文件


用法及實例

將文件打包

[root@localhost test]# tar zcf etc.bak.tar.gz /etc

tar: Removing leading `/' from member names

tar

Removing leading `/' from hard link targets

[root@localhost test]# ll

-rw-r--r-- 1 root root 7829778 10月  6 21:58 etc.bak.tar.gz

說明:將/etc目錄進行打包使用zip進行壓縮,在文件名最後要聲明tar.gz格式,是使用zip壓縮的

 

[root@localhost test]# tar jcf etc.bak.tar.bz2 /etc

tar: Removing leading `/' from member names

tar: Removing leading `/' from hard link targets

[root@localhost test]# ll

-rw-r--r-- 1 root root 6964526 10月  6 22:00 etc.bak.tar.bz2

-rw-r--r-- 1 root root 7829778 10月  6 21:58 etc.bak.tar.gz

說明:顯然bzip2要比zip的壓縮率要高,可是時間會久一些,解壓的時間也會久一些,根據須要來選擇壓縮的格式

注意:上面不管用zip或bzip2打包壓縮文件都會有下面一個提示(解包的時候有時也會提示)

tar: Removing leading `/' from member names

tar: Removing leading `/' from hard link targets

這個信息是正常的,打包時不保留絕對路徑開頭的/,防止在還原的時候把/給覆蓋了,能夠加--absolute-names參數也就是-P參數,建議不加

有兩種方法能夠不讓它提示

[root@localhost test]# tar zcfP etc.bak2.tar.gz /etc/ #加-P參數,保留絕對路徑的/(不推薦使用)

[root@localhost test]# tar jcf etc.bak2.tar.bz2 /etc&>/dev/null 2>&1 #重定向走(推薦)

將文件解包

[root@localhost test]# tar zxf etc.bak.tar.gz  #這樣解壓,默認解壓到當前目錄

[root@localhost test]# tar jxf etc.bak.tar.bz2 -C /tmp/    #指定解壓的目錄

[root@localhost test]# ls -d /tmp/etc/

/tmp/etc/

注意:打包的格式要對應解包時的格式,使用zip打包就要使用z參數解包,不能使用j參數解包,驗證下:

[root@localhost test]# tar jxf etc.bak.tar.gz 

bzip2: (stdin) is not a bzip2 file.

tar: Child returned status 2

tar: Error is not recoverable: exiting now

排除不壓縮或解壓的文件或目錄

[root@localhost test]# tar zcfp etc.new.tar.gz /etc/  --exclude=/etc/services [root@coral coral]#tar zxvf etc_bak.tar.gz

[root@localhost test]# tar zxf etc.new.tar.gz

[root@localhost test]# ls etc/services

ls: 沒法訪問etc/services: 沒有那個文件或目錄

說明:使用—exclude參數排除不壓縮的文件

 

注意:注意的是在指定—exclude=目錄名時,不要加上/,好比sysconfig/這樣,會不成功的,把它當成文件就OK了

 

生產案例:打包網站程序,排除掉裏面全部.doc結尾的文件

[root@localhost www]# tar zcfp web.tar.gz /beyondjie.com--exclude=\*.doc

 

tar打包錯誤案例

[root@localhost test]# tar -zcvf www_bak_$(date +%T).tar.gz/var/www/html/

rcmd: getaddrinfo: Temporary failure in name resolution

tar: www_bak_22\:22\:41.tar.gz: Cannot open: Input/output error

tar: Error is not recoverable: exiting now

tar: Child returned status 2

tar: Error exit delayed from previous errors

說明:雖然能夠顯示data的%T時間,可是打包時不能使用%T,若是須要打包時指定時分秒,以下「

[root@localhost test]#tar -zcvf www_bak_$(date +%H-%M%S).tar.gz/var/www/html/

相關文章
相關標籤/搜索