[Linux][Shell] Linux上的打包和解壓縮指令紀錄

[Linux] Linux上的打包和解壓縮指令紀錄

tar (打包但不壓縮)

套件名稱: tar

打包:

tar -cvf filename.tar [dirname or filename]
    -c: collecting files into one archive file.
    -v: verbose.
    -f: files' name and location (after this parameter you must attach a file name).
    -t: 察看打包檔案的內容含有哪些檔名
    --exclude=FILE:在壓縮的過程中,不要將 FILE 打包(比較新版的tar才有的參數)

解出:

tar -xvf filename.tar [-C dirname]
    -x: release the file inside the tar file.
    -C: if you need put those files to another directory.

gz (gzip壓縮)

套件名稱: gzip

壓縮:

gzip filename

當你使用 gzip 進行壓縮時,在預設的狀態下原本的檔案會被壓縮成為 .gz 的檔名,原始檔案就不再存在了。

解壓縮:

gzip -d filename.gz
     -d: decompression
or
gunzip filename.gz

tar + gz or tgz (打包+壓縮)

打包壓縮:

tar -zcvf filename.tar.gz [dirname or filename]
tar -zcvf filename.tgz [dirname or filename]
    -z: gzip

解壓縮打包:

tar -zxvf filename.tar.gz
tar -zxvf filename.tgz

bz2 (bzip2壓縮)

壓縮:

bzip2 -z filename.bz2
      -z: compression,預設值可以不加
      -c: 將壓縮的過程產生的資料輸出到螢幕上
      -v: 可以顯示出原檔案/壓縮檔案的壓縮比等資訊

解壓縮:

bzip2 -d filename.bz2
      -d: decompression
or
bunzip2 filename.bz2

tar + bz2

打包壓縮:

tar -jcvf filename.tar.bz2 [dirname or filename]

解壓縮打包:

tar -jxvf filename.tar.bz2 [-C dirname]

xz (xz壓縮)

套件名稱:xz-utils

壓縮:

xz -z filename

解壓縮:

xz -d filename.xz

tar + xz

打包壓縮:

tar -Jcvf filename.tar.xz dirname

解壓縮打包:

tar -Jxvf filename.tar.xz

z (z壓縮)

壓縮:

compress filename

解壓縮:

uncompress filename.Z

tar + z (打包壓縮)

打包壓縮:

tar -Zcvf filename.tar.Z dirname

解壓縮打包:

tar -Zxvf filename.tar.Z

 

7z (7zip壓縮)

套件名稱:p7zip-full

壓縮:

7z a filename.7z filename
7z a FileName.7z FileName -pPASSWORD # Use Password

解壓縮:

7z x filename.7z

rar壓縮

套件名稱:rar, unrar

壓縮:

rar a filename.rar dirname

解壓縮:

rar e filename.rar
unrar e filename.rar
rar x filename.rar dirname # 解壓縮到指定目錄內

zip壓縮

套件名稱: zip

壓縮:

zip filename.zip dirname

解壓縮:

unzip filename.zip

解壓縮多數的檔案到目前的位置上:
unzip '*.zip'

解壓縮多數的檔案到各自的資料夾中:
for file in `ls *.zip`; do unzip $file -d `echo $file | cut -d . -f 1`; done

 

只看目錄或檔案列表,但不解壓縮

tar -tvf  xxxx.tar.gz | grep ^d  # 只看目錄
tar -tf xxxx.tar.gz  # 查看檔案列表
unzip -l sns.zip  # 只看目錄

從tar.gz檔案中只解壓出特定的檔案或目錄

tar -zxvf  xxxx.tar.gz  ./test/*  # 取出所有test資料夾資料
tar -zxvf  xxxx.tar.gz  ./test/sites/index.php  # 取出某一檔案

Reference

Unzip Multiple Files from Linux Command Line

https://www.linuxquestions.org/questions/linux-newbie-8/unzip-multiple-zip-files-each-to-separate-folder-312646/

http://linux.vbird.org/linux_basic/0240tarcompress.php#tar

http://note.drx.tw/2008/04/command.html

Linux 從壓縮檔中解壓縮單一檔案:tar.gz、tar.bz2、tar.xz、zip、rar 格式

Add a Comment