[Linux][Shell] Linux上的打包和解壓縮指令紀錄
Posted On 2018-03-17
[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
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