2,049 瀏覽數

檔案壓縮與包裝

常用的檔案壓縮與包裝,不過 Linux 不依據檔尾的名稱來判斷是什麼檔案,所以我們可以使用 “file" 這個程式來判斷檔案的格式.而這個程式是依據 /usr/share/magic 所定義的檔頭來做分辨.

# file /etc/passwd
/etc/passwd: ASCII text
# file /bin/ls
/bin/ls: ELF <strong>32-bit LSB executable</strong>, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
  • 以 a 爲副檔名的文件
    # tar xv file.a
    
  • 以 z 爲副檔名的文件
    # uncompress file.Z
    
  • 以 gz 爲副檔名的文件

    gunzip 解壓縮(=gzip -d) 是 gzip -d 的soft link
    ex:解壓縮

    # ll
    -rw-rw-r-- 1 root root 372 Oct 29 10:24 file.gz
    # gunzip file.gz
    # ll
    -rw-rw-r-- 1 root root 638 Oct 29 10:24 file
    

    gzip 壓縮
    只能針對檔案壓縮,而且是將原始檔作成壓縮檔,所以原始檔會不見
    ex:壓縮

    # ll
    -rw-rw-r-- 1 root root 638 Oct 29 10:24 file
    # gzip file
    # ll
    -rw-rw-r-- 1 root root 372 Oct 29 10:24 file.gz
    
  • 以 bz2 爲副檔名的文件
    # bunzip2 file.bz2
    
  • 以 tar.Z 爲副檔名的文件
    # tar xvZf file.tar.Z
    

    # compress -dc file.tar.Z | tar xvf -
    
  • 以 tar.gz / tgz 爲副檔名的文件
    解包裝+解壓縮(同時解 tar 與 gzip)

    # tar xvzf file.tar.gz
    

    gzip -dc file.tar.gz | tar xvf -
    

    包裝+壓縮(同時做 tar 與 gzip)

    # tar zvcf file.tar.gz source
    

    x: extract 解開 tar 檔
    c: create 建立 tar 檔
    f: 指定 tar 檔名
    v: verbose 顯示 壓縮/解壓縮 過程
    z:使用gzip壓縮

  • 以 tar.bz2 爲副檔名的文件
    解包裝+解壓縮(同時解 tar 與 bzip2)

    # tar xvjf file.tar.bz2
    

    # bzip2 -dc file.tar.bz2 | xvf -
    

    包裝+壓縮(同時做 tar 與 bzip2)

    # tar jvcf file.tar.bz2 source
    
  • 以 cpio.gz / cgz 爲副檔名的文件
    # gzip -dc file.cgz | cpio -div
    
  • 以 cpio / cpio 爲副檔名的文件
    # cpio -div file.cpio
    

    # cpio -div &lt; file.cpio
    
  • 以 rpm 爲副檔名的文件安裝

    1.安裝RPM套件

    # rpm -ivh xxx.rpm
    

    2.移除RPM套件

    # rpm -e xxx
    

    3.升級RPM套件

    # rpm -Uvh xxx.rpm
    

    or

    # rpm -Fvh xxx.rpm
    

    更多資訊請參考 RPM 套件管理

  • 以 rpm 爲副檔名的文件解壓縮:
    # rpm2cpio file.rpm | cpio -div
    
  • 以 deb 爲副檔名的文件安裝:
    # dpkg -i file.deb
    

    更多關於 dpkg 請參考 http://benjr.tw/94000

  • 以 zip 爲副檔名的文件
    # unzip file.zip
    
  • 以 tar 爲副檔名的文件
    包裝檔案/目錄

    # tar cvf file.tar source
    

    c:create
    v:verbose
    f:file
    顯示包裝檔的內容

    # tar tvf file.tar
    

    t:list
    解開包裝檔

    # tar xvf file.tar
    

    x:extract
    加入檔案至包裝檔案

    # tar rvf file.tar addfiles
    

    r:append
    刪除包裝檔內的檔案

    # tar --delete -vf file.tar delfile
    
  • 以 star 爲副檔名的文件
    star 備份打包指令:

    # star -Hexustar -acl -c f=Tree.star Tree
    

    f=Tree.star “star 打包檔案名稱" , Tree 欲打包目錄
    star 還原解包指令:

    # star -acl -x f=Tree.star
    

網友的想法

  1. 自動參照通知: 備份 Backup | Benjr.tw

發表迴響