Linux 基礎教程 32-解壓縮命令

来源:https://www.cnblogs.com/surpassme/archive/2018/08/03/9416455.html
-Advertisement-
Play Games

    將文件壓縮後對提升數據傳輸效率,降低傳輸帶寬,管理備份數據都有非常重要的功能,因此文件壓縮解壓技能就成為必備技能。相對於Windows中的文件解壓縮工具百花爭艷,在Linux中的解壓縮工具則要少很多,常用的解壓縮命令主要為 gzip 、 bzip2 、 tar 、 zip ...


    將文件壓縮後對提升數據傳輸效率,降低傳輸帶寬,管理備份數據都有非常重要的功能,因此文件壓縮解壓技能就成為必備技能。相對於Windows中的文件解壓縮工具百花爭艷,在Linux中的解壓縮工具則要少很多,常用的解壓縮命令主要為gzipbzip2tarzip等等。

gzip命令

gzip只能針對普通文件進行壓縮和解壓,對於文件夾,符號鏈接等是不支持的。基本語法如下所示:

gzip [選項] [文件]

常用參數如下所示:

參數 說明
-d , --decompress 解壓文件
-f , --force 壓縮/解壓文件強制覆蓋已經存在的文件
-l , --list 顯示壓縮包的信息,如壓縮前大小、壓縮後大小、壓縮比例等
-r , --recursive 遞歸壓縮指定目錄中的所有文件和子目錄中的文件,將每個文件都壓縮為一個gz文件
-t , --test 檢查壓縮文件的完整性
-v , --verbose 顯示詳細過程
-V , --version 顯示版本信息

壓縮速度和壓縮強度

    在壓縮文件時,可以根據實際需要採用不同的壓縮速度和壓縮強度,來調整壓縮的時間和壓縮比例。在gzip中共提供了9種壓縮級別。

  • -1:代表壓縮速度最快,但壓縮強度不高
  • -9:代表壓縮強度最高,但壓縮速度較慢
  • -6:gzip預設值

gzip示例如下所示:

  • 1、添加壓縮文件
[root@localhost Python-3.7.0]# du -sh Python-3.7.0
189M    Python-3.7.0
[root@localhost Python-3.7.0]# gzip -r Python-3.7.0
[root@localhost Python-3.7.0]# du -sh Python-3.7.0
64M     Python-3.7.0
[root@localhost Python-3.7.0]# ll
總用量 10856
-rw-rw-r--  1 root     root    3731 6月  27 11:07 aclocal.m4.gz
drwxr-xr-x  5 root     root      82 7月  20 12:43 build
-rw-rw-r--  1 root     root   13214 6月  27 11:07 config.guess.gz
-rw-r--r--  1 root     root   38624 7月  20 12:48 config.log.gz
  • 2、壓縮tar包
[root@localhost Python-3.7.0]# gzip Python-3.7.0.tar
[root@localhost Python-3.7.0]# ll -h
總用量 52M
-rw-r--r-- 1 root root 52M 7月  24 14:13 Python-3.7.0.tar.gz
  • 3、解壓壓縮包
gzip -d Python-3.7.0.tar.gz
  • 4、顯示壓縮包信息
[root@localhost Python-3.7.0]# gzip -l Python-3.7.0.tar.gz
         compressed        uncompressed  ratio uncompressed_name
           53670458           190464000  71.8% Python-3.7.0.tar

bzip2

bzip2與gzip非常類似,區別在於gzip壓縮和解壓均是同一個命令,而bzip2壓縮命令為bzip2,解壓縮命令為bunzip2

tar命令

在Linux中tar命令算是用得最多的命令了,基基本語法如下所示:

tar [選項] [文件]

其常用參數如下所示:

選項 說明
-A , --catenate 向壓縮包中添加壓縮包
-c, --create 新建壓縮包
-C, --directory=DIR 指定解壓縮目錄
-d, --diff 對比壓縮包與文件系統的差異
--delete 從壓縮包刪除指定的文件
-r, --append 添加文件末尾追加文件
-t, --list 顯示壓縮包中的目錄結構
-u, --update 僅向壓縮包中添加較新的文件
-x, --extract 解壓壓縮包
-f, --file=ARCHIVE 指定壓縮文件
-v, --verbose 顯示詳細過程
-j, --bzip2 支持bzip2
-z, --gzip 支持gzip
--overwrite 解壓時如果文件已經存在,則進行替換

使用tar需要註意的事項如下所示:

  • 1、常用的主選項參數如下:
-c -x -t -r -u
以上這5個參數同時只能出現一個,不能同時出現多個
  • 2、輔助選項
-f :一般情況需要將該參數放置在最後位置,後面緊跟文件名

tar 示例如下所示:

  • 1、添加壓縮文件到當前目錄
[root@localhost ~]# tar -cf Alltxt.tar *.txt
  • 2、查看壓縮包內容
[root@localhost ~]# tar -tf Alltxt.tar
in.txt
out.txt
packstack-answers-20180710-091950.txt
packstack-answers-20180710-092155.txt
packstack-answers-20180710-100538.txt
  • 3、向壓縮包中添加壓縮包
[root@localhost ~]# tar -cf Alltxt.tar *.txt
[root@localhost ~]# tar -cf Allbak.tar *.bak
[root@localhost ~]# tar -Af Alltxt.tar Allbak.tar
[root@localhost ~]# tar -tf Alltxt.tar
in.txt
out.txt
packstack-answers-20180710-091950.txt
packstack-answers-20180710-092155.txt
packstack-answers-20180710-100538.txt
append.txt.bak
  • 4、向壓縮包中添加文件
[root@localhost ~]# tar -rf Alltxt.tar out
[root@localhost ~]# tar -tf Alltxt.tar
in.txt
out.txt
packstack-answers-20180710-091950.txt
packstack-answers-20180710-092155.txt
packstack-answers-20180710-100538.txt
append.txt.bak
out/
out/out.txt
out/eip.sh
  • 5、更新壓縮包中的文件
[root@localhost ~]# tar -uf Alltxt.tar append.txt.bak
  • 6、解壓文件到指定目錄
[root@localhost ~]# tar -xf Python-3.7.0.tar  -C TarTest/
  • 7、解壓壓縮包中的指定文件
[root@localhost Python-3.7.0]# tar -xf Python-3.7.0.tar Python-3.7.0/pyconfig.h
[root@localhost Python-3.7.0]# tree Python-3.7.0
Python-3.7.0
└── pyconfig.h
0 directories, 1 file

zip命令

跟bzip2類似,zip用於壓縮文件,而unzip用於解壓縮文件。其基本語法如下所示:

zip [選項] [指定文件名] [壓縮文件或路徑]

uzip [選項] [壓縮包名稱]
  • zip常用參數如下所示:
選項 說明
-c , --entry-comments 給壓縮文件添加註釋
-d , --delete 從壓縮包刪除指定文件
-D 壓縮包不創建目錄名稱
-f , --freshen 與參數 -u 類似,不僅更新已有文件,而且也添加壓縮包沒有的文件
-i files/ --include files 僅向壓縮包添加指定的文件
-m , --move 將原始文件添加到壓縮包刪除原文件
-O output-file
-q , --quiet 靜默模式
-r , --recurse-paths 遞歸處理指定目錄和子目錄
-T , --test 檢查壓縮包的完整性
-u , --update 將較新的文件更新替換到壓縮包中
-v , --verbose 顯示詳細過程
-x files/--exclude files 壓縮文件時添加排除項
-# (-0~-9) 設置壓縮級別,-0:不壓縮文件,-1:最快壓縮速度,-9:最好壓縮強度,預設為-6
  • unzip常用參數
選項 說明
-l 顯示壓縮包中的內容
-t 檢查壓縮包的完整性
-o 強制覆蓋已存在的文件而不提示
-j 不處理壓縮文件中的原有目錄路徑
-d exdir 指定解壓目錄

zip/unzip示例如下所示:

  • 1、添加壓縮包
[root@localhost Python-3.7.0]# zip -r Python-3.7.0.zip Python-3.7.0
  • 2、解壓壓縮包
unzip -d /tmp/ Python-3.7.0.zip
  • 3、檢查壓縮包完整性
[root@localhost Python-3.7.0]# unzip -t Python-3.7.0.zip
Archive:  Python-3.7.0.zip
    testing: Python-3.7.0/            OK
    testing: Python-3.7.0/install-sh   OK
    ...
    testing: Python-3.7.0/pybuilddir.txt   OK
No errors detected in compressed data of Python-3.7.0.zip.
  • 4、顯示壓縮包內容
[root@localhost Python-3.7.0]# unzip -l Python-3.7.0.zip
Archive:  Python-3.7.0.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  07-20-2018 12:50   Python-3.7.0/
     7122  06-27-2018 11:07   Python-3.7.0/install-sh
   101855  06-27-2018 11:07   Python-3.7.0/setup.py
        0  07-20-2018 12:37   Python-3.7.0/.vsts/
 13965984  07-20-2018 12:50   Python-3.7.0/python
       26  07-20-2018 12:50   Python-3.7.0/pybuilddir.txt
---------                     -------
186791269                     4771 files
  • 5、刪除壓縮包中指定的文件
[root@localhost Python-3.7.0]# zip Python-3.7.0.zip -d Python-3.7.0/*.o
deleting: Python-3.7.0/Modules/config.o
deleting: Python-3.7.0/Modules/getpath.o
deleting: Python-3.7.0/Modules/main.o

本文同步在微信訂閱號上發佈,如各位小伙伴們喜歡我的文章,也可以關註我的微信訂閱號:woaitest,或掃描下麵的二維碼添加關註:
MyQRCode.jpg


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 區分類和對象: 類是創建對象的模板。 類和對象: ...
  • 題目來源於牛客網 一、選擇題 Go語言自帶垃圾回收機制。 如果是值傳遞的話子函數對map修改不會影響父函數中的map,如果是地址傳遞則會影響。 go語言編譯器會自動在以標識符、數字字面量、字母字面量、字元串字面量、特定的關鍵字(break、continue、fallthrough和return)、增 ...
  • 今天我們來講講自定義組件和它的構造函數。 在前面的文章里我們已經接觸了好幾個自定組件,這次的示例是一個自定義對話框,他有一個about按鈕,點擊按鈕可以顯示出Qt的信息或者用戶輸入的信息。這是效果圖: 下麵我們就來重點講解自定義組件和它的構造函數吧。 構造函數的聲明 先上代碼: type MyDia ...
  • java中List集合的元素是按照添加順序排序的,我們在實際開發過程中,可能會遇到需要對其內容進行排序的場景,接下來對我遇到的場景所採用的解決方式做個總結。 一、業務場景 管理後臺商戶名稱下拉列表,需平臺商戶名稱按照首字母A-Z順序進行排序展示。 二、解決思路 由於頁面展示的數據為後臺查詢所得的Li ...
  • 基本數據類型 | 類型 | 關鍵字 | 描述 | 所占位元組數 | 最大值 | 最小值 | | | | | | | | | 布爾型 | bool | 存儲值 true 或 false | bool | 1 | 0 | | 字元型 | char | 通常是一個八位位元組(一個字元)。這是一個整數類型 | ...
  • selenium 是一個用於Web應用程式測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。 環境配置: 1、Windows系統 ...
  • Linux網上下載軟體一般只會有.sh結尾執行程式。並不會像商店下載一樣自動創建桌面圖標。此時需要自行進行編輯。 以IDEA為例 我將idea放入了/opt/IDEA下 ...
  • 前言 對於我們運維來說,在mysql資料庫領域,別的不說,最起碼要會兩大技能! 第一大技能:備份與還原 第二大技能:主從非同步 關於這兩大技能我們先來說說第一個 備份與還原 備份:我們按時定點來備份數據,當下數據最值錢,所以我們要確保數據的安全。 平常我們都是7天一大備,三天兩頭一小備,也就是說,一周 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...