linux檔案與文件的的壓縮與打包

本文涉及的命令:gzip、zcat、bzip二、bzcat、tar、dump、restore、mkiosfs、cdrecord、dd、cpio。node

概念:linux

  1. 幾種基礎壓縮的概念:
    1. 計算機最小單位是字節,但數據存儲過程當中有些字節中有些位數據沒有使用,但計算機會填0,有的壓縮技術就是利用複雜的算法將本應該是空的位【丟】出來。
    2. 另外一種壓縮就是將重複出現的內容進行解釋。從而下降文件容量。
  2. 幾種常見的壓縮擴展名
    1. *.Z    compress 程序壓縮的檔案;(過期,不用了)
    2. *.gz    gzip 程序壓縮的檔案;
    3. *.bz2    bzip2 程序壓縮的檔案;
    4. *.tar    tar 程序打包的數據,並無壓縮過;
    5. *.tar.gz   tar 程序打包的檔案,其中而且通過 gzip 的壓縮
    6. *.tar.bz2   tar 程序打包的檔案,其中而且通過 bzip2 的壓縮
  3. dump備份工具
    1. 分等級備份,完整備份、差別備份
    2. 當待備份的文件爲單一文件系統時可以使用完整的dump功能。
    3. 當備份的資料爲目錄,並不是單一文件系統,則備份資料必須在同一目錄下,且只能使用完整備份,不支持 -u 選頃,即沒法創建 /etc/dumpdates 這個各別 level 備份的時間記錄文件;(詳細請見後面命令解釋)
  4. dd備份工具
    1. 可備份分區或磁盤,可實現磁盤對拷,無需格式化。

命令:ios

  1. gzip [-cdtv#] 檔名   【可接重定向符,保留原檔】
    • -c :將壓縮的數據輸出到屏幕上,可透過數據流重導向來處理;
    • -d :解壓縮的參數;
    • -t :能夠用來檢驗一個壓縮文件的一致性~看看檔案有無錯誤;
    • -v :能夠顯示出原檔案/壓縮文件案的壓縮比等信息;
    • -# :壓縮等級,-1 最快,可是壓縮比最差、-9 最慢,可是壓縮比最好!預設是-6
    • 查看:zcat 檔名.gz
  2. bzip2 [-cdkzv#] 檔名
    • -c :將壓縮的過程產生的數據輸出到屏幕上!
    • -d :解壓縮的參數
    • -k :保留源文件,而不會刪除原始的檔案喔!
    • -z :壓縮的參數
    • -v :能夠顯示出原檔案/壓縮文件案的壓縮比等信息;
    • -# :與 gzip 一樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!
    • 查看:bzcat 檔名.bz2
  3. tar---------文件的打包
    1. tar [-j|-z] [cv] [-f 創建的檔名] filename... <==打包與壓縮
    2. tar [-j|-z] [tv] [-f 創建的檔名] <==察看檔名
    3. tar [-j|-z] [xv] [-f 創建的檔名] (可接打包檔案中的某個檔案名)[-C 目錄] <==解壓縮
      • -c :創建打包檔案,可搭配 -v 來察看過程當中被打包的檔名(filename)
      • -t :察看打包檔案的內容含有哪些檔名,重點在察看『檔名』就是了;-x :解打包或解壓縮的功能,能夠搭配 -C (大寫) 在特定目錄解開,-c, -t, -x 不可同時使用
      • -j :透過 bzip2 的支持進行壓縮/解壓縮:此時檔名最好爲 *.tar.bz2
      • -z :透過 gzip 的支持進行壓縮/解壓縮:此時檔名最好爲 *.tar.gz
      • -v :在壓縮/解壓縮的過程當中,將正在處理的文件名顯示出來!
      • -f filename:-f 後面要馬上接要被處理的檔名!建議 -f 單獨寫一個選頃!
      • -C 目錄 :這個選頃用在解壓縮,若要在特定目錄解壓縮,可使用這個選頃。
      • -p :保留備份數據的本來權限與屬性,經常使用於備份(-c)重要的配置文件
      • -P :保留絕對路徑,亦即容許備份數據中含有根目錄存在之意;
      • --exclude=FILE:在壓縮的過程當中,不要將 FILE 打包!
    4. 例:
      1. 先由 find 找出比 /etc/passwd 還要新的檔案
        1. find /etc -newer /etc/passwd
      2. 使用 tar 來進行打包吧!日期爲 2008/09/29
        1. tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2008/09/29" /etc/*(此處有點問題)
  4. dump [-Suvj] [-level] [-f 備份檔] 待備份資料 -----------備份
    • -S :僅列出後面的待備份數據須要多少磁盤空間纔可以備份完畢;
    • -u :將此次 dump 的時間記錄到 /etc/dumpdates 檔案中;
    • -v :將 dump 的檔案過程顯示出來;
    • -j :加入 bzip2 的支持!將數據進行壓縮,默認 bzip2 壓縮等級爲 2
    • -level:就是咱們談到的等級,從 -0 ~ -9 共十個等級;
    • -f :相似 tar ,後面接產生的檔案,亦可接例如 /dev/st0 裝置文件名等
    • -W :列出在 /etc/fstab 裏面的具備 dump 設定的 partition 是否有備份過?
  5. restore----------dump的還原      還原時須要進入檔須要還原的目錄下!
    1. restore -t [-f dumpfile] [-h] <==用來察看 dump 檔
    2. restore -C [-f dumpfile] [-D 掛載點] <==比較dump與實際檔案
    3. restore -i [-f dumpfile] <==進入互動模式
    4. restore -r [-f dumpfile] <==還原整個文件系統
      • -t :此模式用在察看 dump 起來的備份文件中都有什麼重要數據!相似 tar -t功能
      • -C :此模式能夠將 dump 內的數據拿出來跟實際的文件系統作比較,最終會列出『在 dump 檔案內有記錄的,且目前文件系統不同』的檔案;
      • -i :進入互動模式,能夠僅還原部分檔案,用在 dump 目錄時的還原!
      • -r :將整個 filesystem 還原的一種模式,用在還原針對文件系統的 dump 備份
      • -h :察看完整備份數據中的 inode 與文件系統 label 等信息。
      • -f :後面就接你要處理的那個 dump 檔案。
      • -D :與 -C 進行搭配,能夠查出後面接的掛載點與 dump 內有不一樣的檔案!
  6. mkiosfs---------創建映像檔
    1. mkisofs [-o 映像檔] [-rv] [-m file] 待備份文件.. [-V vol] -graft-point isodir=systemdir ...
      • -o :後面接你想要產生的那個映像檔檔名。
      • -r :透過 Rock Ridge 產生支持 Unix/Linux 的檔案數據,可記錄較多的信息;
      • -v :顯示建置 ISO 檔案的過程
      • -m file :-m 爲排除檔案 (exclude) 的意思,後面的檔案不備份到映像檔中
      • -V vol :創建 Volume,有點像 Windows 在檔案總管內看到的 CD title 的東西
      • -graft-point:graft有轉嫁或移植的意思,
  7. cdrecord---------光盤刻錄工具
    1. cdrecord -scanbus dev=ATA <==查詢刻錄機位置
    2. cdrecord -v dev=ATA:x,y,z blank=[fast|all] <==抹除重複讀寫片
    3. cdrecord -v dev=ATA:x,y,z -format <==格式化DVD+RW
    4. cdrecord -v dev=ATA:x,y,z [可用選頃功能] file.iso
      • [可用選頃功能] 主要是寫入 CD/DVD 時可以使用的選頃,常見的選頃包括有:
      • -data :指定後面的檔案以數據格式寫入,不是以 CD 音軌(-audio)方式寫入!
      • speed=X :指定刻錄速度,例如CD可用 speed=40 爲40倍數,DVD則可用 speed=4 之類
      • -eject :指定刻錄完畢後自動退出光盤
      • fs=Ym :指定多少緩衝存儲器,可用在將映像檔先暫存至緩衝存儲器。預設爲 4m,通常建議可增長到 8m ,不過,仍是得規你的刻錄機而定。
        • 針對 DVD 的選頃功能:
          • driveropts=burnfree :打開 Buffer Underrun Free 模式的寫入功能
          • -sao :支持 DVD-RW 的格式
  8. dd if="input_file" of="output_file" bs="block_size"  count="number"------創建文檔、備份 (可實現磁盤對拷,無需格式化)
    • if :就是 input file,也能夠是裝置
    • of :就是 output file,也能夠是裝置
    • bs :規劃的一個 block 的大小,若未指定則預設是 512 bytes(一個 sector 的大小)
    • count:多少個 bs 的意思。
  9. cpio---------備份
    1. cpio -ovcB > [file|device] <==備份
    2. cpio -ivcdu < [file|device] <==還原
    3. cpio -ivct < [file|device] <==察看
      1. 備份會使用到的選頃與參數:
        • -o :將數據 copy 輸出到檔案或裝置上
        • -B :讓預設的 Blocks 能夠增長至 5120 bytes ,預設是 512 bytes ! 這樣的好處是可讓大檔案的儲存速度加快。
      2. 還原會使用到的選頃與參數:
        • -i :將數據自檔案或裝置 copy 出來系統當中
        • -d :自動創建目錄!使用 cpio 所備份的數據內容不見得會在同一層目錄中,所以咱們必項要讓cpio 在還原時能夠創建新目錄。
        • -u :自動的將較新的檔案覆蓋較舊的檔案!
        • -t :需配合 -i 選頃,可用在"察看"以 cpio 創建的檔案或裝置的內容
      3. 一些可共享的選頃與參數:
        • -v :讓儲存的過程當中文件名能夠在屏幕上顯示
        • -c :一種較新的 portable format 方式儲存

提示:本文爲《鳥哥linux私房菜基礎篇》閱讀筆記,不詳細的地方請自行閱讀該書。算法

相關文章
相關標籤/搜索