小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

tar命令詳解

 昵稱4153560 2010-10-26
tar是Linux環(huán)境下最常用的備份工具之一。tar(tap archive)原意為操作磁帶文件,但基于Linux的文件操作機制,同樣也可適用于普通的磁盤文件。tar可用于建立、還原、查看、管理文件,也可方便的追加新文件到備份文件中,或僅更新部分的備份文件,以及解壓、刪除指定的文件。熟悉其常用參數(shù),能方便日常的系統(tǒng)管理工作。
一、版本
還是那句,不同的操作系統(tǒng),tar的命令參數(shù)是有點區(qū)別的:
引用
# tar --version
tar (GNU tar) 1.14
二、簡單操作
命令格式:
tar [options] [tarfile] [other-files]
tar--long-option -function-options files
tar可使用的參數(shù)非常多,先列舉幾個最常用的參數(shù):
引用
-t, --list
列出歸檔文件內容目錄
-x, --extract, --get
從歸檔文件中解析文件
-c, --create
創(chuàng)建新的歸檔文件
上面三個參數(shù),不能同時存在,僅能使用其中一個,即t/x/c
-f file, --file=file
指定備份文件,或設備,例如磁帶機/dev/st0
-v, --verbose
顯示命令的執(zhí)行過程
-Z, --compress, --uncompress
使用compress命令處理備份文件
-z, --gzip, --gunzip, --ungzip
使用gzip命令處理備份文件
-j, --I, --bzip
使用bzip2命令處理備份文件
-z和-j都是在備份文件打包后才進行壓縮的操作的,并且,該操作會影響其他的參數(shù),后面會再提到
-C directory, --directory=directory
先進入指定的目錄,再釋放
簡單使用:
把/etc目錄中所有的文件打包為etc.tar文件
tar -cvf /tmp/etc.tar /etc
把/etc目錄中所有的文件打包并使用gzip壓縮為etc.tar.gz文件
tar -zcvf /tmp/etc.tar.gz /etc
把/etc目錄中所有的文件打包并使用bzip2壓縮為etc.tar.bz2文件
這里的,tar.gz或tar.bz2都是慣例,為方便標識的,例如:tgz等,并不是特定條件,但建議遵循慣例
tar -jcvf /tmp/etc.tar.bz2 /etc
查看備份包中的內容,若為已經壓縮的文件,需加上-z或者-j參數(shù)
tar -ztvf /tmp/etc.tar.gz
默認情況下,tar打包時都是使用相對路徑的,所以,釋放時,需要先進入目錄目錄,然后再解壓
同樣的,根據(jù)使用的壓縮方式,應加上-z或者-j參數(shù)
cd /tmp && tar -zxvf /tmp/etc.tar.gz
這是另一種寫法,結果和上面的相同,其會先進入/tmp目錄,然后再釋放包的
tar -zxvf /tmp/etc.tar.gz -C /tmp
釋放單個etc/passwd文件,正如前面提到的,tar包中的是相對路徑,所以不能使用“/etc/passwd”
而且,這里不能使用-C參數(shù),釋放文件是當前路徑的相對路徑,并帶目錄釋放
tar -zxvf /tmp/etc.tar.gz etc/passwd
tar還可以支持很多額外的參數(shù),方便我們在備份和釋放的時候進行控制。

三、更多參數(shù)
以三大常見操作為序說明。
1、備份
引用
-d, --diff, --compare
找出歸檔文件和文件系統(tǒng)的不同之處
-r, --append
將文件附加到歸檔文件之后
-u, --update
只附加比歸檔中新的文件
-A, --catenate
將 tar 文件附加到歸檔文件之后
--concatenate
與 -A 相同
--delete
從歸檔文件中刪除 (不能在磁帶上?。?br>-N date, --newer=date, --after-date=date
只將比指定日期更新的文件保存到備份文件
--exclude=pattern
排除符合查找模式的文件
-P, --absolute-names
備份文件中的文件名使用絕對路徑,而不移除文件名前的“/”,默認是相對路徑的
-l, --one-file-system
復制文件或目錄存放的文件系統(tǒng)必須和tar命令當前執(zhí)行的文件系統(tǒng)相同,否則不執(zhí)行;也就是講,不處理其他分區(qū)的文件。(可忽略mount掛載分區(qū)的問題)
--mode=permissions
備份時,把加入備份文件中的文件屬性修改為指定的屬性,格式和chmod命令接受的格式相同
--group=group
備份時,把加入備份文件中的文件所屬組設定成指定的組
--owner=owner
備份時,把把加入備份文件中的文件所有者設定成指定的用戶
--numeric-owner
以UID和GID代替用戶名和組名
--recursion
遞歸模式(默認)
--no-recursion
不進行遞歸處理,即不把指定目錄下的所有文件和文件夾都備份
--newer-mtime=date
Add only files whose contents have changed since date to the archive.
僅增加指定日期后修改過內容的文件到備份文件中
--anchored
排除時,排除匹配式中匹配整個文件路徑(默認)
--no-anchored
排除時,排除匹配式中可匹配“/”后的路徑
--ignore-case
排除時,排除匹配式中忽略大小寫
--no-ignore-case
排除時,排除匹配式中大小寫敏感(默認)
--wildcards
排除匹配式支持通配符(默認)
--no-wildcards
排除匹配式不支持通配符
--wildcards-match-slash
排除匹配式的通配符匹配“/”(默認)
--no-wildcards-match-slash
排除匹配式的通配符不匹配“/”
-X file, --exclude-from file
指定樣式文件,供程序執(zhí)行時剔除符合條件的文件
--remove-files
刪除已經加入到備份文件中的文件
舉例:
創(chuàng)建當前目錄的全備份到backup.tar文件
(使用find的原因是,這樣可以打包所有隱含文件或不符合命令規(guī)范的文件和目錄)
tar cvf - `find . -print` > backup.tar
比2005年6月1日新的文件才會備份
tar -N '2005/06/01' -zcvf home.tar.gz /home
除/home/dmtsai目錄外,/home和/etc目錄的所有東西都打包
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
刪除etc.tar文件中的etc/pbm2ppa.conf文件
tar --delete etc/pbm2ppa.conf -vf etc.tar
把tmp.tar文件附加到etc.tar后面
tar -A tmp.tar -vf etc.tar
根據(jù)-T參數(shù)后的樣式文件list.txt,打包/etc中指定的文件,同樣的,list.tx默認也是相對路徑的
find . -name "*.d" -o -name "*.conf" > list.txt
tar -T list.txt -czvf etc.tar.gz /etc
通過管道,使用一條命令實現(xiàn)上面相同的功能
find . -name "*.d" -o -name "*.conf" | tar -czvf etc.tar.gz -T -
※值得注意幾個地方
引用
1)-f后面必須緊跟備份文件,xxx.tar或者xxx.tar.gz
2)使用--delete、-u、-r、-A的時候,后面跟的備份文件都必須為未壓縮的,若備份文件已經壓縮,需要使用gunzip先解壓,操作完后再gzip;
也就是說,不能對tar.gz、tar.bz2等文件直接操作的;
3)備份打包時,默認為相對路徑;而排除匹配式默認也是全路徑匹配的
所以,在打包時,會提示:“tar: Removing leading `/' from member names”
除非你使用-P參數(shù)或特定的參數(shù)指定

2、釋放

引用
-k, --keep-old-files
還原備份文件時,不覆蓋已存在的文件
-m, --modification-time, --touch
還原文件時,不變更文件的更改時間
-p, --same-permissions
解析許可權限信息,即保留備份文件中的權限信息
-s, --same-order, --preserve-order
以與備份文件相同的順序還原文件
--preserve
等于同時設置-p和-s
--no-same-permissions
不解析許可權限信息,這是普通用戶的默認設置,僅對影響管理員的操作有影響
--no-same-owner
不使用備份文件中的所有者信息,而以您自己的身份解析文件
--same-owner
使用相同的文件所有者還原文件
--overwrite
覆蓋已經存在的文件和目錄
--overwrite-dir
覆蓋已經存在的目錄
--recursive-unlink
釋放前,先刪除整個目錄下所有文件的連接
舉例:
釋放文件時,設置為備份文件中的相同所有者(僅對管理員而言)
tar --same-owner -xzvf etc.tar.gz
通過管道,把/etc目錄用tar整個“拷貝”到/backup/etc,而不用建立任何臨時文件
因為根本不需要生成備份包文件,所以這里不需要-z參數(shù)
tar cvf - /etc | tar xvf - -C /backup/etc
這里同上面的原理是一樣的,只不過通過ssh直接“拷貝”到遠端機器上而已
配合ssh密鑰匹配,可實現(xiàn)不用人工干預的備份工作
tar cvf - /etc | (ssh root@192.168.228.244 'tar xvf - -C /backup/etc')
3、操作磁帶設備
部分參數(shù)只適用于磁帶設備,不適用于常規(guī)的磁盤文件。
引用
-K file, --starting-file=file
從指定的文件開始還原(按順序)
-L length, --tape-length=length
設置磁帶的容量,單位為1024字節(jié)(bytes)
-M, --multivolume
在建立、還原備份文件或列出其中內容時,采用多卷模式(不能對文件操作)
-V name, --label=name
建立使用指定卷標的備份文件
-W, --verify
寫入備份文件后,校驗文件是否正常
-F script, --info-script=script, --new-volume-script=script
更換磁帶時執(zhí)行指定的腳本文件,必須與參數(shù)-M同時使用
舉例:
把/bin、/usr/bin目錄都打包到st0磁帶設備中
tar cvf /dev/st0 /bin /usr/bin
把old.dmp文件追加到st0磁帶中(使用cvf,會刪除原來的文件的)
Linux下使用磁帶機的簡單方法,可以見這里:
點擊
tar rvf /dev/st0 old.dmp
4、其他
還有一些控制參數(shù)這里不詳細討論了,請自行測試。
但提醒一句,-T參數(shù)比較重要哦。
引用
--null
-T從null設備讀取文件名,覆蓋-C的設置
-o, --old-archive, --portability
將數(shù)據(jù)寫入備份文件時使用V7格式
--posix
將數(shù)據(jù)寫入備份文件時使用POSIX格式
-G, --incremental
處理舊GNU格式的增量備份
--rsh-command=command
不使用rsh命令連接遠程主機,而使用指定的命令進行
--suffix=suffix
指定要刪除文件前備份文件,該備份文件使用的后綴,默認是“~”
--totals
創(chuàng)建備份文件時,列出已建立的備份文件的大小
tar --totals -cvf tmp.tar  tmp/
-R, --block-number
在輸出信息時,一同block number信息
-S, --sparse
若文件中有大量連續(xù)0字節(jié)時,將該文件保存成稀疏文件
-T file, --files-from=file
指定樣式文件,文件內容為一個或多個條件樣式,供程序還原或創(chuàng)建符合指定條件的文件
--use-compress-program=program
使用指定的壓縮程序對備份文件壓縮或解壓
--volno-file=FILE
使用或更新FILE文件中指定的卷號碼
-w, --interactive, --confirmation
當遇到問題時,要求用戶先確認
-B, --read-full-records
讀取數(shù)據(jù)是重設扇區(qū)大小,僅適用于BSD 4.2的管道操作
-O, --to-stdout
把從備份文件里還原的文件輸出到標準輸出設備
--version
版本信息
--help
幫助信息

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多