檔案與檔案系統的壓縮打包

2021-07-02 22:25:00 字數 3115 閱讀 6664

gzip [-cdtv#] 檔名

-c:將壓縮的資料輸出到螢幕上,可以通過資料流重導向來處理

-d:解壓縮

-t:檢驗壓縮檔案的一致性

-v:顯示壓縮比等資訊

-#:壓縮等級,-1最快但壓縮比最差,-9最慢但壓縮比最好,預設是6

壓縮的結果是.gz檔名,同時原始檔會被替代,zcat可以讀取gzip壓縮的檔案

bzip2 [-cdkzv#] 檔名

-c:同gzip

-d:解壓

-k:保留原始檔,不會刪除原始檔案

-z:壓縮

-v:同gzip

-#:同gzip

壓縮效果比gzip好,產生的檔案是.bz2,可用bzcat讀取

tar:用來打包多個檔案,僅打包不壓縮,得到的檔案稱為tarfile,如果有壓縮支援,則稱為tarball。常用:

壓縮:tar -jcv -f filename.tar.bz2 被壓縮的檔案

檢視:tar -jtv -f filename.tar.bz2

解壓:tar -jxv -f filename.tar.bz2 -c 解壓的目錄

其中-j是通過bzip2進行解壓/壓縮(-z:gzip),檔名的字尾需要自己新增。在解壓過程中檔名開頭的根目錄(/)會被拿掉,避免解壓時覆蓋根目錄中的內容。如果需要保留根目錄加上-p即可

檢視壓縮包中單一檔案的方法:

先通過【tar -jtv -f filename | grep "關鍵字"】查詢要開啟的檔名,然後【tar -jxv -f filename 要開啟的檔名】

打包某目錄但不包括某些檔案的方法:

tar -jcv -f filename.tar.bz2 --exclude=不包括的檔案 要打包並壓縮的目錄

打包比某個檔案新的檔案:

1. 找出該檔案的mtime(ls),例如2015/5/25

2. 打包:tar -jcv -f filename.tar.bz2 --newer-mtime="2015/05/25" 要打包壓縮的目錄

完整備份工具:dump

dump可以制定等級,第一次備份時等級為level 0,第二次備份時為level 1,level 1只備份從level 0後變化過的檔案,level 2一次類推。如果備份的資料是單一檔案系統,可以使用掛載點或者裝置名進行備份;如果待備份的資料只是目錄,並非單一檔案系統,則此時有如下限制:

1. 所有的備份資料都必須在該目錄下

2. 只能使用level 0

3. 不支援-u選項,無法在/var/lib/dumpdates下更新記錄檔案

dump [-suv] [-level] [-f 備份檔] 待備份資料

-s:列出待備份資料需要多少次盤空間進行備份

-u:將本次dump記錄到/var/lib/dumpdates中

-v:顯示dump過程

-j:加入bzip2支援,將資料進行壓縮,預設壓縮等級為2

-level:0~9個壓縮等級

dump -w:列出/etc/fstab中具有dump設定的partition是否備份過

restore:恢復dump備份的資料

restore -t [-f dumpfile] [-h]:觀察dump檔

restore -c [-f dumpfile] [-d 掛載點]:比較dump與實際檔案的差異

restore -i [-f dumpfile]:進入互動模式

互動模式中help可以檢視指令,add file是將檔案加入要解壓的列表中,delete file是將檔案從要解壓的列表中移出,extract是解壓。要被解壓的檔案前會出現*

restore -r [-f dumpfile]:還原檔案系統(若有多個level的dump備份,要從level 0開始依次還原)

dd:讀取磁碟裝置的內容,備份成乙個檔案

dd if="input file" of="output file" bs="block size" count="block number"

block size預設是512b(乙個sector的大小),結果中的3+1指三個完整的512b和乙個不完整的512b

cpio:可以備份任何東西,包括裝置、裝置、檔案,但需要結合find指令來尋找資料

cpio -ovcb > [file/device]:備份

-o:將資料copy輸出到檔案或裝置上

-b:讓預設的block大小可增加至5120b(預設是512b),好處是可以讓大檔案儲存速度加快(inode數少)

cpio -ivcdu < [file/device]:還原

cpio -ivct < [file/device]:檢視

-i:將資料從檔案或裝置copy出到系統中

-d:自動建立目錄(cpio備份的資料不一定在同一層目錄中,必須要然cpio在還原時建立新目錄)

-u:用較新的檔案覆蓋較舊的檔案

-t:需配合-i,可以檢視以cpio建立的檔案或裝置的一些選項和引數

-v:顯示儲存過程

例:找出/boot下的所有檔案並備份到tmp/boot.cpio

1. find /boot -print

2. find /boot | cpio -ocvb > /tmp/boot.cpio

dump,cpio,tar,dd比較

dump:

可將目錄和檔案系統備份至指定裝置或備份成乙個大檔案,傾向於考慮檔案系統而不是個別檔案

cpio:

cpio可以備份從標準輸入(stdin)來的檔案。dump與cpio的功能比較:

1. cpio需要使用touch或find才可執行備份

2. dump備份完後不改變檔案的atime和ctime

3. dump可以以互動的方式進行資料恢復,如retore的-i選項

如果需要定期備份整個作業系統,最好的選擇是dump,其次是cpio

tar:

如果只是為了進行資料備份,不在乎atime,不需要定期做變動備份,tar是最好的選擇

cpio有而大部分tar沒有的功能:

1. 可以備份來自stdin的檔案

2. 備份完成是重新設定檔案的atime(這會改變其ctime)

dd:

乙個很底層的指令,產生檔案系統的二進位制副本,不是基於檔案的,不管也無需知道備份資料的結構,所以不能複製一群檔案

檔案與檔案系統的壓縮與打包

一 單一檔案壓縮 1 gzip,zcat gzip cdtv file c 壓縮資料輸出 重定向 d 解壓縮引數 t 檢驗壓縮檔案的一致性,檢視有無錯誤 v 顯示原檔案 壓縮檔案壓縮比等資訊 壓縮等級 zcat 讀取純文字被壓縮後的檔案 2 bzip2,bzcat bzip2 cdkzv file ...

檔案與檔案系統的壓縮與打包

在linux系統中的常見的壓縮副檔名主要有 z compress程式壓縮的檔案 gz gzip程式壓縮的檔案 bz2 bzip2程式壓縮的檔案 tar tar程式打包的資料,並沒有壓縮過 tar.gz tar程式打包的檔案,其中並且經過gzip的壓縮 tar.bz2 tar程式打包的檔案,其中並且經...

檔案與檔案系統的壓縮與打包

常見的壓縮字尾 z compress 程式壓縮的檔案 zip zip 程式壓縮的檔案 gz gzip 程式壓縮的檔案 bz2 bzip2 程式壓縮的檔案 xz xz 程式壓縮的檔案 tar tar 程式打包的資料,並沒有壓縮過 tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮 t...