1. 程式人生 > >Centos7.5-文件的歸檔和壓縮

Centos7.5-文件的歸檔和壓縮

速查 eat -s 作用 a* roo 歸檔 host img

本節所講內容:
  • 9.1 tar命令進行文件的歸檔和壓縮
  • 9.2 zip管理壓縮文件
  • 9.3 了解gzip-bzip2- xz管理壓縮文件-file-sort查看文件

9.1 tar命令進行文件的歸檔和壓縮

9.1.1 歸檔和壓縮文件

歸檔和壓縮文件的好處:節約硬盤的資源 ,加快文件傳輸速率

  • tar命令 作用:打包、壓縮文件
    技術分享圖片

  • 作用:打包、壓縮文件;tar
    文件是把幾個文件和(或)目錄集合在一個文件裏,該存檔文件可以通過使用gzip、bzip2或xz等壓縮工具進行行壓縮後傳輸
  • 查看man tar
  • 用法:tar [OPTION...] [FILE]...

參數:

  • -c create創建文件
  • -x -extract [?ekstr?kt] 提取 解壓還原文件
  • -v --verbose顯示執行詳細過程
  • -f --file指定備份文件
  • -t --list 列出壓縮包中包括哪些文件,不解包,查看包中的內容
  • -C (大寫)--directory 指定解壓位置

例:給/boot/grub目錄 打包

[root@xuegod63 ~]#  tar -cvf grub.tar /boot/grub/  # tar的參數前可以不使用‘-’

或:

[root@xuegod63 ~]#  tar cvf grub.tar /boot/grub/

tar: 從成員名中刪除開頭的“/”

/boot/grub/
/boot/grub/splash.xpm.gz
[root@xuegod63 ~]# ls gurb.tar
[root@xuegod63 ~]# tar xvf grub.tar   #解壓縮
boot/grub/
boot/grub/splash.xpm.gz
[root@xuegod63 ~]# ls  boot  #得到boot目錄

註意:在使用絕對路徑名歸檔文件時,將默認從文件名中刪除該路徑中前面的 / 符號。這樣解壓時,會直接解壓到當前目錄。 如果不移除/壓縮時,當解包時,直接按絕對路徑來釋放,會覆蓋原系統中此路徑的文件。
例1:指定解壓位置 -C

[root@xuegod63 ~]# tar xvf grub.tar.bz2 -C /opt/
tar: 從成員名中刪除開頭的“/”
/boot/grub/
/boot/grub/splash.xpm.gz
[root@xuegod63 ~]# ls /opt/
boot

例2:把兩個目錄或目錄+文件打包成一個軟件包:

[root@xuegod63 ~]# mkdir back
[root@xuegod63 ~]# cp /etc/passwd back/
[root@xuegod63 ~]# tar -cvf back.tar /boot/grub  back/ /etc/passwd
tar: 從成員名中刪除開頭的“/”
/boot/grub/
/boot/grub/splash.xpm.gz
back/
back/passwd
/etc/passwd

例3:不解包,查看tar中的內容:

[root@xuegod63 ~]# tar -tvf grub.tar         # List all files in archive.tar verbosely.

例4:對比加v的效果

[root@xuegod63 ~]# tar -xf grub.tar 
[root@xuegod63 ~]# tar -xvf grub.tar 
boot/grub/
boot/grub/splash.xpm.gz

Linux架構師高薪入口:
1.學神IT教育官方網站: http://xuegod.ke.qq.com
2.10年行業資深老鳥MK:QQ2659153446
3.加入Linux技術交流QQ群:722287089,即可獲得以下福利:
①定期分享免費學習資料與視頻(工具+筆記+拓展實戰)
②10年行業資深老鳥在線答疑:技能+實戰+項目分享+高薪就業
③有機會免費領取Linux雲計算集群架構師4冊書籍

9.1.2 tar 歸檔+壓縮:

語法:tar czvf newfile.tar.gz SOURCE
常用參數:

  • -z, --gzip 以gzip方式壓縮 擴展名: tar.gz
  • -j : 以bz2方式壓縮的 擴展名:tar.bz2
  • -J : 以xz 方式壓縮 擴展名:tar.xz

例1:創建.tar.gz 包

[root@xuegod63 ~]# tar cvf etc.tar /etc 
[root@localhost test]# tar zcvf etc.tar.gz /etc  #歸檔,註意備份的名字後綴
[root@localhost test]# tar zxvf etc.tar.gz   #解壓縮

例2:創建.tar.bz2包

  • 語法: #tar jcvf newfile.tar.bz2 SOURCE

    [root@xuegod63 ~]# tar -jcvf etc.tar.bz2 /etc
    [root@xuegod63 ~]# tar -jxvf etc.tar.bz2 /etc #解壓縮
    [root@xuegod63 ~]# tar jxvf etc.tar.bz2 -C /opt #解壓到opt目錄下

例3:創建.tar.xz包

[root@xuegod63 ~]#  tar -Jcvf etc.tar.xz /etc
[root@xuegod63 ~]#  tar -xvf etc.tar.xz    #tar.xz 這類包,解壓縮

或:

[root@xuegod63 ~]#  tar -Jxvf etc.tar.xz  #

對比三種壓縮方式後壓縮比例:

[root@xuegod63 ~]# ll -h etc.tar*
-rw-r--r-- 1 0 root   36M 5月  10 12:10 etc.tar
-rw-r--r-- 1 0 root   9.6M 5月  10 12:14 etc.tar.bz2    #這個常用
-rw-r--r-- 1 0 root   12M 5月  10 12:11 etc.tar.gz    #這個常用
-rw-r--r-- 1 0 root   7.7M 5月  10 12:16 etc.tar.xz   #這個壓縮比例最高,壓縮的時間是最長

9.2 zip管理壓縮文件

zip軟件包解壓縮命令:
zip是壓縮程序,unzip是解壓程序。
例1:壓縮文件:

[root@xuegod63 ~]# zip a.zip /etc/passwd 

例2:將所有.jpg的文件壓縮成一個zip包

[root@xuegod63 ~]# zip all.zip *.jpg  

例3:壓縮一個目錄

[root@xuegod63 ~]# zip -r grub.zip /boot/grub   #一般不用

解壓縮:

[root@xuegod63 ~]# unzip grub.zip
[root@xuegod63 ~]# unzip grub.zip -d /opt/  #  -d  解壓到指定的目標/opt

9.3 了解gzip-bzip2- xz管理壓縮文件-file-sort查看文件

我們創建壓縮的TAR存檔,TAR命令它支持三種不同的壓縮方式。

  • gzip壓縮速度最快;
  • bzip2壓縮生成的文件比gzip小,但使用不如gzip廣;
  • xz壓縮工具相對較新,但是會提供最佳的壓縮率
    Linux架構師高薪入口:
    1.學神IT教育官方網站: http://xuegod.ke.qq.com
    2.10年行業資深老鳥MK:QQ2659153446
    3.加入Linux技術交流QQ群:722287089,即可獲得以下福利:
    ①定期分享免費學習資料與視頻(工具+筆記+拓展實戰)
    ②10年行業資深老鳥在線答疑:技能+實戰+項目分享+高薪就業
    ③有機會免費領取Linux雲計算集群架構師4冊書籍

9.3.1 壓縮工具

壓縮工具:gzip bzip2 zip xz
常見的壓縮格式: .gz .bz2 .xz .zip
語法格式:
壓縮

gzip 文件  ====》  gzip a.txt   =====》 a.txt.gz
bzip2 文件 ===》 bzip2 b.txt  =====》 b.txt.bz2
xz 文件 ===》xz c.txt ===》c.txt.xz
[root@xuegod63 ~]# mkdir xuegod
[root@xuegod63 ~]# touch  xuegod/a.txt
[root@xuegod63 ~]# gzip xuegod/a.txt 
[root@xuegod63 ~]# ls xuegod/a*
xuegod/a.txt.gz

註:只能對文件進行壓縮,且壓縮後源文件會消失,一般不用。
(bzip2,xz這兩個工具可以通過添加參數-k來保留下源文件)

[root@xuegod63 ~]# cp /etc/passwd 1.txt
[root@xuegod63 ~]# bzip2 -k 1.txt
[root@xuegod63 ~]# ls  1.txt.bz2

[root@xuegod63 ~]# xz -k 1.txt
[root@xuegod63 ~]# ls 1.txt.xz

解壓:

  • gzip -d 文件
  • bzip2 -d 文件 -k 保留源文件
  • xz -d 文件 或 unxz 文件 -k 保留源文件

例:

[root@panda mnt]# gzip -d 1.txt.bz2
[root@xuegod63 ~]# bzip2 -d 1.txt.bz2
[root@panda mnt]# xz -d 1.txt.bz2

9.3.2 file查看文件

file命令

  • 作用: file - determine file type #確定文件類型
  • 用法: file /etc/passwd

註:linux系統不根據後綴名識別文件類型用file命令查看文件的類型。

[root@xuegod63 ~]# file /etc/passwd
/etc/passwd: ASCII text

9.3.3 按一定規則排序查看文件

查看文件:

[root@xuegod63 ~]# ls -ltr    按時間排序  t 表示時間,  -r 從小到大,不加r參數由大到小

[root@xuegod63 ~]# ls -lSr  按大小排序  -r 從小到大  
[root@xuegod63 ~]# ls -lSrh  按大小排序  -r 從小到大  ,加-h 參數,看大小,更清楚
[root@xuegod63 ~]# ls -lS   從大到小

查看目錄:

[root@xuegod63 ~]# du -sh /etc   看某個目錄大小

查看分區大小:

[root@xuegod63 ~]# df -h  可以快速查看磁盤大小的存儲空間

9.3.4 排序:處理大量數據時會用到的命令sort

例1:默認按字母規則進行排序

[root@xuegod63 ~]# cat  /etc/passwd | sort | more

例2: 按數據排序

[root@xuegod63 ~]# vim file2   #每行隨意寫一些數字

例2: 按數據排序,默認從小到大

2
23
231
[root@panda mnt]# sort -n file2  #-n默認從小到大  
[root@xuegod63 ~]# sort  -r file2   #-r 反序排序(升序變成降序進行排序) 從大小到

例3:支持按月份排序

[root@xuegod63 ~]# vim  file3  #寫入以下內容
January 
March
April
February
[root@xuegod63 ~]# sort -M file3
April
February
January 
March

例4:組合使用

  • -t 指定一個用來區分鍵位置字符
  • -k 後面跟數字,指定按第幾列進行排序
  • -r 反序排序(升序變成降序進行排序)

    [root@xuegod63 ~]# sort -t ":" -k3 -r /etc/passwd | more #按: 做分隔符,以第3列,也就是用戶UID,來從大到小排序
    [root@xuegod63 ~]# du -h /etc | sort -r | more #把etc目錄下所有文件,按從大到小排序
    Linux架構師高薪入口:
    1.學神IT教育官方網站: http://xuegod.ke.qq.com
    2.10年行業資深老鳥MK:QQ2659153446
    3.加入Linux技術交流QQ群:722287089,即可獲得以下福利:
    ①定期分享免費學習資料與視頻(工具+筆記+拓展實戰)
    ②10年行業資深老鳥在線答疑:技能+實戰+項目分享+高薪就業
    ③有機會免費領取Linux雲計算集群架構師4冊書籍
    微信公眾號:
    技術分享圖片
    MK老師微信號:
    技術分享圖片
    總結:

  • 9.1 tar命令進行文件的歸檔和壓縮
  • 9.2 zip管理壓縮文件
  • 9.3 了解gzip-bzip2- xz管理壓縮文件-file-sort查看文件

Centos7.5-文件的歸檔和壓縮