tar命令詳解


解壓到指定目錄

tar -zxvf flash_player_npapi_linux.x86_64.tar.gz -C mm
tar -zxvf flash_player_npapi_linux.x86_64.tar.gz --directory mm
tar -zxvf flash_player_npapi_linux.x86_64.tar.gz --directory ./mm/

 

tar命令詳解

Linux中用tar來存儲或者展開tar的存檔文件.必須配合參數使用

 

實例

1:壓縮一個文件為tar.gz后綴.  (注意,tar保存的目錄是#pwd 所在的目錄)

#tar zcvf test1.tar.gz /home/www    

或者#tar cvf test2.tar /home/www

#gzip -q test2.tar 


2:解壓一個后綴為tar.gz的文件.

#tar zxvf test1.tar.gz       (解壓后會保存成 test1的一個文件夾)

或者#gunzip test2.tar.gz

#tar xvf test2.tar

3:用一個命令完成壓縮

#tar cvf - /home/www/ | gzip -qc > test3.tar.gz

4:用一個命令完成解壓

#gunzip -c test3.tar.gz | tar xvf -

#gunzip test4.tgz

#tar zxvf test5.tar.Z


5:tar打包時,去掉某些子目錄或者指定文件,使用 -exclude {dirname,filename} 

比如我們要打包/home/www網站全站,放在/home目錄下,除了一些比如db_m(phpmyadmin)之類的,本地有就不需要

#tar zcvf /home/bk0406-1717.tar.gz /home/www --exclude /home/www/db_m --exclude /home/www/images --exclude /home/docs --exclude=/home/www/config.inc.PHP

這里需要注意的是,exclude 后面的目錄不能帶 /  帶了 /就會失效


6:查看tar包里面的內容

#tar -tvf /home/bk0406-1717.tar.gz


我們在終端里面#man tar

可以看見tar的參數有

-A, --catenate, --concatenate
將一存檔與已有的存檔合並
-c, --create    
建立新的存檔
-d, --diff, --compare
比較存檔與當前文件的不同之處
--delete                
從存檔中刪除
-r, --append            
附加到存檔結尾
-t, --list              
列出存檔中文件的目錄
-u, --update            
僅將較新的文件附加到存檔中
-x, --extract, --get            
從存檔展開文件
 
其他參數
--atime-preserve       
不改變轉儲文件的存取時間
-b, --block-size N      
指定塊大小為 Nx512 字節(缺省時 N=20)
-B, --read-full-blocks  
讀取時重組塊
-C, --directory DIR     
轉到指定的目錄
--checkpoint            
讀取存檔時顯示目錄名
-f, --file [HOSTNAME:]F 
指定存檔或設備 (缺省為 /dev/rmt0)
--force-local           
強制使用本地存檔,即使存在克隆
-F, --info-script F --new-volume-script F
在每個磁盤結尾使用腳本 F (隱含 -M)
-G, --incremental       
建立老 GNU 格式的備份
-g, --listed-incremental F
建立新 GNU 格式的備份
-h, --dereference       
不轉儲動態鏈接,轉儲動態鏈接指向的文件。
-i, --ignore-zeros      
忽略存檔中的 0 字節塊(通常意味着文件結束)
--ignore-failed-read    
在不可讀文件中作 0 標記后再退出???
-k, --keep-old-files    
保存現有文件;從存檔中展開時不進行覆蓋
-K, --starting-file F   
從存檔文件 F 開始
-l, --one-file-system   
在本地文件系統中創建存檔
-L, --tape-length N     
在寫入 N*1024 個字節后暫停,等待更換磁盤
-m, --modification-time 
當從一個檔案中恢復文件時,不使用新的時間標簽
-M, --multi-volume      
建立多卷存檔,以便在幾個磁盤中存放
-N, --after-date DATE, --newer DATE     
僅存儲時間較新的文件
-o, --old-archive, --portability        
以 V7 格式存檔,不用 ANSI 格式
-O, --to-stdout         
將文件展開到標准輸出
-p, --same-permissions, --preserve-permissions
展開所有保護信息
-P, --absolute-paths    
不要從文件名中去除 '/'
--preserve              
like -p -s 與 -p -s 相似
-R, --record-number     
顯示信息時同時顯示存檔中的記錄數
--remove-files          
建立存檔后刪除源文件
-s, --same-order, --preserve-order      

--same-owner
展開以后使所有文件屬於同一所有者
-S, --sparse
高效處理
-T, --files-from F
從文件中得到要展開或要創建的文件名
--null
讀取空結束的文件名,使 -C 失效
--totals
顯示用 --create 參數寫入的總字節數
-v, --verbose
詳細顯示處理的文件
-V, --label NAME
為存檔指定卷標
--version
顯示 tar 程序的版本號
-w, --interactive, --confirmation
每個操作都要求確認
-W, --verify
寫入存檔后進行校驗
--exclude FILE
不把指定文件包含在內
-X, --exclude-from FILE
從指定文件中讀入不想包含的文件的列表
-y, --bzip2, --bunzip2
用 bzip2 對存檔壓縮或解壓
-Z, --compress, --uncompress
用 compress 對存檔壓縮或解壓
-z, --gzip, --ungzip
用 gzip 對存檔壓縮或解壓
--use-compress-program PROG
用 PROG 對存檔壓縮或解壓 ( PROG 需能接受 -d 參數)
--block-compress
為便於磁盤存儲,按塊記錄存檔
-[0-7][lmh]
指定驅動器和密度[高中低]


如果打包絕對路徑的時候,出現下面的

tar: Removing leading `/’ from member names

通常是在兩台環境相似的機器上進行同步復制的時候,才有需要使用絕對路徑進行打包。使用絕對路徑打包時如果不指定相應的參數,tar會產生一句警告信息:”tar: Removing leading `/’ from member names”,並且實際產生的壓縮包會將絕對路徑轉化為相對路徑。

所以打包和解開的時候都使用參數 -P 就可以解決  tar -zxvfP


 

指定路徑的時候需要路徑必須存在

比如 解壓 tar -zxvf ***.tar.gz -C ../dir




壓縮 
tar –cvf jpg.tar *.jpg //將目錄里所有jpg文件打包成tar.jpg 
tar –czf jpg.tar.gz *.jpg //將目錄里所有jpg文件打包成jpg.tar后,並且將其用gzip壓縮,生成一個gzip壓縮過的包,命名為jpg.tar.gz 
tar –cjf jpg.tar.bz2 *.jpg //將目錄里所有jpg文件打包成jpg.tar后,並且將其用bzip2壓縮,生成一個bzip2壓縮過的包,命名為jpg.tar.bz2 
tar –cZf jpg.tar.Z *.jpg //將目錄里所有jpg文件打包成jpg.tar后,並且將其用compress壓縮,生成一個umcompress壓縮過的包,命名為jpg.tar.Z 
rar a jpg.rar *.jpg //rar格式的壓縮,需要先下載rar for linux 
zip jpg.zip *.jpg //zip格式的壓縮,需要先下載zip for linux 


解壓 
tar –xvf file.tar //解壓 tar包 
tar -xzvf file.tar.gz //解壓tar.gz 
tar -xjvf file.tar.bz2 //解壓 tar.bz2 
tar –xZvf file.tar.Z //解壓tar.Z 
unrar e file.rar //解壓rar 
unzip file.zip //解壓zip 


1、*.tar 用 tar –xvf 解壓 
2、*.gz 用 gzip -d或者gunzip 解壓 
3、*.tar.gz和*.tgz 用 tar –xzf 解壓 
4、*.bz2 用 bzip2 -d或者用bunzip2 解壓 
5、*.tar.bz2用tar –xjf 解壓 
6、*.Z 用 uncompress 解壓 
7、*.tar.Z 用tar –xZf 解壓 
8、*.rar 用 unrar e解壓 
9、*.zip 用 unzip 解壓

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM