linux在文件打包和壓縮


1. 打包和壓縮文件


linux現在經常使用gzip和bzip2要壓縮的文件。tar壓縮文件。

經常使用的擴展:
*.gz   gzip壓縮文件
*.bz2  bzip2壓縮的文件
*.tar   tar打包的文件,沒有壓縮
*.tar.gz  tar打包文件。經過gzip壓縮
*.tar.bz2  tar打包文件,經過bzip2壓縮

2. gzip壓縮


gzip是使用最廣的壓縮命令。用來取代compress壓縮。
$ gzip -h
gzip 1.3.3
(2002-03-08)
usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
經常使用參數
-c : 壓縮數據輸出到屏幕,可重定向處理
-d : 解壓縮
-t : 檢驗壓縮文件的一致性。看看文件是否錯誤
-v : 顯示壓縮的具體信息。壓縮比等
-# : 數字,壓縮等級,1-9,9壓縮率最高,默認6
壓縮文件
$ gzip -v test
test:   53.1% -- replaced with test.gz
壓縮會刪掉本地文件。新建test.gz文件
不刪除文件使用重定向
$ gzip -c test > test.gz
查看壓縮后的文件內容,不解壓縮的情況下。使用zcat命令
$ zcat test.gz 

3. bzip2


bzip2是用來取代gzip的壓縮,比gzip壓縮比例還高。使用參數差點兒和gzip同樣。
$ bzip2 -h
bzip2, a block-sorting file compressor.  Version 1.0.2, 30-Dec-2001.

   usage: bzip2 [flags and input files in any order]
經常使用參數
-c : 壓縮數據輸出到屏幕。可重定向處理
-d : 解壓縮
-k : 保留原文件
-z : 壓縮
-t : 檢驗壓縮文件的一致性。看看文件是否錯誤
-v : 顯示壓縮的具體信息。壓縮比等
-# : 數字,壓縮等級。1-9,9壓縮率最高。默認6
使用
#壓縮test文件,生成test.bz2
$ bzip2 -z test

#保留原文件, 壓縮生成test.bz2
$ bzip2 -k test

#解壓縮文件
$ bzip2 -d test.bz2
查看壓縮文件內容,使用bzcat
$ bzcat test.bz2 

3. 打包:tar


tar為打包命令。將多個文件打包成一個文件。
還包括壓縮參數。

$ tar --help
GNU `tar' saves many files together into a single tape or disk archive, and
can restore individual files from the archive.

Usage: tar [OPTION]... [FILE]...

Examples:
  tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.
  tar -tvf archive.tar         # List all files in archive.tar verbosely.
  tar -xf archive.tar          # Extract all files from archive.tar.

#參數
-c 新建壓縮文件
-t 列出壓縮文件列表
-x 解壓縮文件
   -c,-t,-x不能同一時候出現

-j 通過bzip2來壓縮或解壓縮。文件名稱最好為. *.tar.bz2
-z 通過gzip壓縮或解壓縮, 文件名稱最好為 *.tar.gz
-v 展示正在處理的具體信息
-f 后面跟要被處理的文件名稱
-C 解壓時,后面跟解壓到的文件夾名

-p 保留文件的原本權限
-P 保留絕對路徑
--exclude=FILE 排除FILE文件
tar的基本使用方法
#創建bzip2壓縮文件
$ tar -jcv -f test.tar.bz2 test/
test/
test/1
test/10

#創建gzip壓縮文件
$ tar -zcv -f test.tar.gz test
test/
test/1
test/10

#查看文件
$ ll
drwxrwxr-x  2 work work     4096 Jul 19 19:12 test
-rw-rw-r--  1 work work    61897 Jul 19 19:13 test.tar.bz2

#不解壓縮情況下查看文件列表
$ tar -jtv -f test.tar.bz2 
tar: Record size = 8 blocks
drwxrwxr-x work/work         0 2014-07-19 19:12:40 test/
-rw-rw-r-- work/work      6353 2014-07-19 19:12:40 test/1
-rw-rw-r-- work/work      6343 2014-07-19 19:12:40 test/10

#解壓縮到當前文件夾
$ tar -jxv -f test.tar.bz2 
test/
test/1
test/10

#解壓縮到指定文件夾test2
$ mkdir test2
$ tar -jxv -f test.tar.bz2 -C test2  
test/
test/1
test/10

#保留原文件權限
$ tar -zcvp -f etc.tar.gz /etc

#查看壓縮文件
$ tar -ztv -f etc.tar.gz 
打包時不包括某個文件
#創建壓縮文件,不包括某個文件test/10
$ tar -zcv -f test.tar.gz  --exclude=test/10 test/*
test/1
備份比某個時刻更新的文件
$ tar -zcv -f etc.tar.gz --newer-mtime="2013/10/31" /etc/*
/etc/xinetd.d/
tar: /etc/yp.conf: file is unchanged; not dumped
#not dumpd表示沒有備份的

地址: http://blog.csdn.net/yonggang7/article/details/37963793

版權聲明:本文博主原創文章,博客,未經同意不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM