tar命令

tar命令使用總結html

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

語法參數

參數網站

含義spa

說明htm

-zip

zipci

使用zip進行解壓或壓縮get

-jcmd

bzip2it

使用bzip2進行解壓或壓縮

-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/

相關文章
相關標籤/搜索