Linux常見壓縮指令小結

為什么需要壓縮技術

我們都知道文件是以byte作為單位的,如果我們的文件僅僅在低位占一個1

0000 0001

這種情況我們完全可以壓縮一下,將高位的0全部抹掉即可。
如上所說是一種壓縮技術,還有一種就是將1111(此處省略96個)一共100個1,用類似于"100個1"的方式。

zip/unzip

命令選項

在這里插入圖片描述
在這里插入圖片描述

遞歸基礎壓縮

為了方便演示壓縮,我們在tmp下創建一個包含3個文件的zipDir

[root@localhost tmp]# mkdir zipDir
[root@localhost tmp]# cd zipDir
[root@localhost zipDir]# touch file1
[root@localhost zipDir]# touch file2
[root@localhost zipDir]# touch file3

使用最高級別9,將zipDir文件夾下所有文件或者文件夾通通壓縮到zipDir.zip中

zip -9r  /tmp/zipDir.zip /tmp/zipDir/

排除指定文件壓縮

例如我們希望壓縮zipDir目錄時,不壓縮zipDir3

zip -9r /tmp/zipDirWithoutFile3.zip  /tmp/zipDir    -x "/tmp/zipDir/file3"

如下圖可以看到壓縮過程中,并沒有包括file3

在這里插入圖片描述

刪除壓縮包中的文件

將zipDir.zip中的file3文件從壓縮包中刪除,命令如下所示,注意-d后面要制定和壓縮包中相同的文件名所在操作系統中的路徑

 zip /tmp/zipDir.zip -d   /tmp/zipDir/file3

在這里插入圖片描述

補充文件到壓縮包

上文中,我們將file3中zipDir.zip中刪除,我們希望將其添加到壓縮包中,就可以使用下面這條命令

zip -u  /tmp/zipDir.zip  /tmp/zipDir/file3

在這里插入圖片描述
這條指令同樣支持將文件夾下的指定內容添加到壓縮包中,命令如下

# 將file打頭的文件添加到壓縮包中
zip -u  /tmp/zipDir.zip  /tmp/zipDir/file*

解壓縮

-o:解壓時無腦覆蓋目標路徑文件
-x 解壓時若目標文件夾有該文件則不覆蓋
-d 指定目標解壓位置

unzip -o  /tmp/zipDir.zip -x zipDir/file3 -d  /tmp/unzipDir/

在這里插入圖片描述

gzip/gunzip

選項

該命令只能對文件進行壓縮,若指定目錄也僅僅是對目錄下的文件進行壓縮。
在這里插入圖片描述

遞歸壓縮文件

同樣我們為演示gzip增加測試文件夾

mkdir gzipDir;cd gzipDir;touch file1;touch file2;touch file3;
# 因為gzip無法直接壓縮文件夾所以需要先用zip壓縮一下文件夾zip -r /tmp/gzipDir.zip /tmp/gzipDir/;# gzip以最高級別壓縮比壓縮文件,并顯示壓縮過程gzip -9v /tmp/gzipDir.zip

在這里插入圖片描述

顯示壓縮比

gzip -l /tmp/gzipDir.zip.gz

在這里插入圖片描述

解壓縮到當前目錄

gzip -d /tmp/gzipDir.zip.gz

bzip2/bunzip2

命令選項

在這里插入圖片描述

與gzip差不多,都是用于壓縮文件的,壓縮時會刪除文件的信息,但是用如下選項即可完成使用最高壓縮比,并且壓縮時不刪除源文件,顯示壓縮進度的完成壓縮

bzip2 -9vk /tmp/*

在這里插入圖片描述

解壓縮同樣使用-d即可。

tar

選項

該指令僅僅是對文件或者文件夾做打包而已,對應選項如下

在這里插入圖片描述
在這里插入圖片描述

普通壓縮

創建示例文件夾和文件

 mkdir tarDir;cd tarDir;touch file1;touch file2;touch file3;

顯示過程并新建文件的執行壓縮

tar -cvf  /tmp/tardir.tar /tmp/tarDir/

在這里插入圖片描述

調用gzip、bzip2壓縮

調用gzip壓縮,添加一個-z即可

tar -zcvf tardir.tar.gz tardir.tar

調用bz2壓縮

tar -jcvf tardir.tar.bz2 tardir.tar

解壓縮

將上文的c改為x即可

例如上文壓縮原始壓縮文件tardir.tar,我們壓縮命令為

tar -xvf tardir.tar

gz結尾的tar文件,則用

tar -zxvf tardir.tar.gz

bz2結尾的tar文件則用

tar -jxvf tardir.tar.bz2

dd

常用于文件備份,將指定文件輸出到對應文件夾

在這里插入圖片描述

備份示例

將/etc/inittab備份至/etc/inittab.bak

dd if=/etc/inittab of=/etc/inittab.bak

我們都知道操作系統存儲最基礎單位為塊。可以看到備份過程中,用了0+1的塊。說明使用了0個完整的塊+1個不到的塊完成文件備份。
在這里插入圖片描述

cpio

選項

該命令也是用于文件備份和還原的

在這里插入圖片描述

備份

將tarDir備份到tmp的backDir.cpio中

find /tmp/tarDir/ | cpio -ocvB >/tmp/backDir.cpio

在這里插入圖片描述

恢復

為了演示還原,筆者將被壓縮的源文件刪除,使用cpio將直接備份的文件原原本本還原為原來路徑的原來文件,如下

cpio -icduv < /tmp/backDir.cpio

在這里插入圖片描述

參考文獻

鳥哥的Linux私房菜

循序漸進Linux(第2版)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212750.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212750.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql執行帶函數命令的sql腳本報錯

一、前言 開發給了一個帶函數的sql文件讓我執行&#xff0c;但是執行導入時報以下錯誤 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled 二、解決 在數據庫命令行中執行以下命令&#xff08;臨時生效&…

HarmonyOS4.0從零開始的開發教程11給您的應用添加彈窗

HarmonyOS&#xff08;十&#xff09;給您的應用添加彈窗 概述 在我們日常使用應用的時候&#xff0c;可能會進行一些敏感的操作&#xff0c;比如刪除聯系人&#xff0c;這時候我們給應用添加彈窗來提示用戶是否需要執行該操作&#xff0c;如下圖所示&#xff1a; 彈窗是一種…

AI:99-基于深度學習的飛機故障檢測與維修

?? 本文選自專欄:人工智能領域200例教程專欄 從基礎到實踐,深入學習。無論你是初學者還是經驗豐富的老手,對于本專欄案例和項目實踐都有參考學習意義。 ??? 每一個案例都附帶有在本地跑過的核心代碼,詳細講解供大家學習,希望可以幫到大家。歡迎訂閱支持,正在不斷更新…

【pycharm】Pycharm中進行Git版本控制

本篇文章主要記錄一下自己在pycharm上使用git的操作&#xff0c;一個新項目如何使用git進行版本控制。 文章使用的pycharm版本PyCharm Community Edition 2017.2.4&#xff0c;遠程倉庫為https://gitee.com/ 1.配置Git&#xff08;File>Settings&#xff09; 2.去Gitee創建…

記錄一次云原生線上服務數據遷移全過程

文章目錄 背景遷移方案調研遷移過程服務監控腳本定時任務暫停本地副本服務啟動&#xff0c;在線服務下線MySQL 數據遷移Mongo 數據遷移切換新數據庫 ip 本地服務啟動數據庫連接驗證服務打包部署服務重啟前端恢復正常監控腳本定時任務啟動舊服務器器容器關閉 遷移總結 背景 校園…

正確使用React組件緩存

簡介 正常來講的話當我們點擊組件的時候&#xff0c;該組件以及該組件的子組件都會重新渲染&#xff0c;但是如何避免子組件重新渲染呢&#xff0c;我們經常用memo來解決 React.memo配合useCallback緩存組件 父組件沒有傳props const Index ()> {console.log(子組件刷新…

Java14道高頻面試題

面試題 1、JWT ①、JWT(全稱:Json Web Token)是一個開放標準(RFC 7519),它定義了一種緊湊的、自包含的方式,用于作為 JSON 對象在各方之間安全地傳輸信息。 ②、JWT 的原理是&#xff0c;服務器認證以后&#xff0c;生成一個 JSON 對象&#xff0c;發回給用戶 ③、JWT是由頭…

機器學習基本概念介紹 2023

筆記來源于&#xff1a; https://www.youtube.com/watch?vphQK8xZpgoU&t172s https://www.youtube.com/watch?vXLyPFnephpY&t645s Machine/Deep Learning 機器學習概況來說&#xff0c;讓機器具備自動找函式的能力 &#xff08;Machine Learning 約等于 Looking …

智能優化算法應用:基于飛蛾撲火算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于飛蛾撲火算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于飛蛾撲火算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.飛蛾撲火算法4.實驗參數設定5.算法結果6.…

訂單系統的設計與海量數據處理實戰

概述 訂單系統可以說是整個電商系統中最重要的一個子系統&#xff0c;因此訂單數據可以算作電商企業最重要的數據資產。訂單系統從代碼上來說可分為兩部分&#xff1a;訂單程序和歷史訂單處理程序。數據存儲進行分庫分表。 訂單系統業務分析 對于一個合格的訂單系統&#xf…

如何使用bash寫腳本

本章主要介紹如何使用bash寫腳本。 了解通配符了解變量了解返回值和數值運算數值的對比判斷語句循環語句 grep的用法是“grep 關鍵字 file”&#xff0c;意思是從file中過濾出含有關鍵字的行。 例如&#xff0c;grep root /var/log/messages&#xff0c;意思是從/var/log/me…

基于Html+騰訊云播SDK開發的m3u8播放器

周末業余時間在家無事&#xff0c;學習了一下騰訊的云播放sdk&#xff0c;并制作了一個小demo&#xff08;m3u8播放器&#xff09;&#xff0c;該在線工具是基于騰訊的云播sdk開發的&#xff0c;云播sdk非常牛&#xff0c;可以支持多種播放格式。 預覽地址 m3u8player.org 源碼…

JVM進程緩存

引言 緩存在日常開發中啟動至關重要的作用&#xff0c;由于是存儲在內存中&#xff0c;數據的讀取速度是非常快的&#xff0c;能大量減少對數據庫的訪問&#xff0c;減少數據庫的壓力。我們把緩存分為兩類&#xff1a; 分布式緩存&#xff0c;例如Redis&#xff1a; 優點&…

Mybatis之簡介、使用操作(安裝、XML、SqlSession、映射的SQL語句、命名空間、作用域和生命周期)

學習的最大理由是想擺脫平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;遲一天就多一天平庸的困擾。各位小伙伴&#xff0c;如果您&#xff1a; 想系統/深入學習某技術知識點… 一個人摸索學習很難堅持&#xff0c;想組團高效學習… 想寫博客但無從下手&#xff0c;急需…

Java項目-瑞吉外賣Day4

實現文件的上傳下載&#xff1a; 前端代碼&#xff1a; 對文件的操作就是對流的操作。 上傳文件的后端代碼&#xff0c;需要注意MultipartFile的名字必須與前端相對&#xff1a; 為文件存儲位置進行動態設置&#xff0c;配置application.xml 在CommonController中設置屬性讀…

Nodejs后端+express框架

前言 基于vue3Node后臺管理項目&#xff0c;補充nodejs和express相關知識。 文章目錄 一&#xff0c;express 1.官網 Express - 基于 Node.js 平臺的 web 應用開發框架 - Express中文文檔 | Express中文網 2.安裝 npm install express --save 二、MongoDB 特點 非關…

uniapp 藍牙小程序

在 uni-app 中開發藍牙相關的小程序涉及到使用 uni-app 提供的藍牙 API。uni-app 為多端開發提供了統一的 API&#xff0c;這意味著你編寫的代碼可以在不同的平臺上運行&#xff0c;包括微信小程序。 以下是實現藍牙功能的基本步驟和代碼示例&#xff1a; 1. 開啟藍牙適配器 …

java之SpringBoot開發實用篇

MENU SpringBoot開發實用篇KF-1.熱部署KF-1-1.手動啟動熱部署KF-1-2.自動啟動熱部署KF-1-3.參與熱部署監控的文件范圍配置KF-1-4.關閉熱部署 KF-2.配置高級KF-2-1.ConfigurationPropertiesKF-2-2.寬松綁定/松散綁定KF-2-3.常用計量單位綁定KF-2-4.校驗KF-2-5.數據類型轉換 KF-3…

【頭歌系統數據庫實驗】實驗8 SQL的復雜多表查詢-2

目錄 第1關&#xff1a;基于派生表查詢每個隊員解答中超過他平均memory的user_id及題目編號problem_id 第2關&#xff1a;用ANY/ALL實現查詢2019級選手&#xff08;user_id前4位為2019&#xff09;滿足比2020級其中一個選手注冊時間早即可的選手 第3關&#xff1a;用聚集查詢…

python zblog API實現類似XMLRPC/發布文章

我發現python對Zblog的XML發布并不友好&#xff0c;雖然也有對應的模塊&#xff0c;但是遠遠沒有XPCRPC更直接方便&#xff0c;但是使用xmlRpc是直接給發布文章帶來了不小的便利&#xff0c;但是對系統也并不友好&#xff0c;但是zblog也開放了Api&#xff0c;但是干部子弟不樂…