tar參數與實例

tar能夠爲文件和目錄建立檔案。利用tar,用戶能夠爲某一特定文件建立檔案(備份文件),也能夠在檔案中改變文件,或者向檔案中加入新的文件。
tar是須要參數的。

語法:tar [主選項+輔選項] 文件或者目錄
主選項(運行tar時必需要有下列參數中的至少一個纔可運行 ):
-A, --catenate, --concatenate
    將一存檔與已有的存檔合併
-c, --create    
    創建新的存檔
-d, --diff, --compare
    比較存檔與當前文件的不一樣之處
--delete                
    從存檔中刪除
-r, --append            
    附加到存檔結尾
-t, --list              
    列出存檔中文件的目錄
-u, --update            
    僅將較新的文件附加到存檔中
-x, --extract, --get            
    從存檔展開文件
特別注意:在上述參數中, c/x/t 僅能存在一個!不可同時存在!由於不可能同時壓縮與解壓縮。


輔選項:
--atime-preserve       
    不改變轉儲文件的存取時間
-b, --block-size N      
    指定塊大小爲 Nx512 字節(缺省時 N=20)
-B, --read-full-blocks  
    讀取時重組塊
-C, --directory DIR     
    轉到指定的目錄,展開.tar文件到指定的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           
    與 -p -s 類似
-R, --record-number     
    顯示信息時同時顯示存檔中的記錄數
--remove-files          
    創建存檔後刪除源文件
--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
    從指定文件中讀入不想包含的文件的列表
-j, --bzip2, --bunzip2
    用 bzip2 對存檔壓縮或解壓
-Z, --compress, --uncompress
    用 compress 對存檔壓縮或解壓
-z, --gzip, --ungzip
    用 gzip 對存檔壓縮或解壓
--use-compress-program PROG
    用 PROG 對存檔壓縮或解壓 ( PROG 需能接受 -d 參數)
--block-compress
    爲便於磁盤存儲,按塊記錄存檔
-[0-7][lmh]
    指定驅動器和密度[高中低]


範例(如下範例均以root用戶運行):
範例一:將整個 /home 目錄下的文件所有打包成爲 /usr/backup/home.tar
# tar -cvf /usr/backup/home.tar   /home          <--僅打包,不壓縮
# tar -zcvf /usr/backup/home.tar.gz /home    <--打包後,以 gzip 壓縮
# tar -jcvf /usr/backup/home.tar.bz2 /home   <--打包後,以 bzip2 壓縮
特別注意:在參數 f 以後的文件檔名是本身取的,習慣上都用 .tar 來做爲辨識。

範例二:查閱上述 /usr/backup/home.tar.gz 文件內有哪些文件?
# tar -ztvf /usr/backup/home.tar.gz
   由於咱們使用 gzip 壓縮,因此要查閱該 tar file 內的文件時,就得要加上 z 這個參數了!

範例三:將 /usr/backup/home.tar.gz 文件解壓縮在 /usr/local/src 底下
方法1:
# cd /usr/local/src
# tar -zxvf /usr/backup/home.tar.gz
方法2:
#tar -zxvf /usr/backup/home.tar.gz -C /usr/local/src/

範例四:在 /tmp 底下,我只想要將 /usr/backup/home.tar.gz 內的 home/root 解開而已
# cd /tmp
# tar -zxvf /usr/backup/home.tar.gz   home/root

範例五:將 /home/ 內的全部文件備份下來,而且保存其權限!
# tar -zxvpf /usr/backup/home.tar.gz /home
注意: 這個 -p 的屬性是很重要的,尤爲是當要保留本來文件的屬性時!
           在 f 以後要當即接檔案名!不要再加參數!如上例 tar -zxvfp /usr/backup/home.tar.gz就是錯誤的寫法。

範例六:在 /home 當中,比 2007/06/01 新的文件才備份
# tar -N "2007/06/01" -zcvf home.tar.gz /home

範例七:我要備份 /home, /etc ,但不要 /home/abc
# tar --exclude /home/abc -zcvf myfile.tar.gz /home/* /etc

範例八:將 /home/ 打包後直接解開在 /tmp 底下,而不產生文件!
# cd /tmp
# tar -cvf - /home | tar -xvf -
   要注意的地方在於輸出檔變成 - ,而輸入檔也變成 - 。

範例九:在打包/home以後又新建一個用戶bcd,現也要將其打包加入/usr/backup/home.tar.gz
#tar -zcvrf /usr/backup/home.tar.gz /home/bcd
app

相關文章
相關標籤/搜索