Linux系統常見的壓縮與打包

来源:http://www.cnblogs.com/WebLinuxStudy/archive/2016/01/05/5104082.html
-Advertisement-
Play Games

1.gzip, zcat[root@linux ~]# gzip [-cdt#] 檔名參數: -c :將壓縮的數據輸出到屏幕上,可透過數據流重導向來處理; -d :解壓縮的參數; -t :可以用來檢驗一個壓縮檔的一致性~看看檔案有無錯誤; -# :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但...


1.gzip, zcat

[root@linux ~]# gzip [-cdt#] 檔名
參數:
-c  :將壓縮的數據輸出到屏幕上,可透過數據流重導向來處理;
-d  :解壓縮的參數;
-t  :可以用來檢驗一個壓縮檔的一致性~看看檔案有無錯誤;
-#  :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!預設是 -6 ~

zcat 則是用來讀取壓縮文件數據內容的指令
[root@linux ~]# zcat 檔名.gz


範例:

範例一:將 /etc/man.config 複製到 /tmp ,並且以 gzip 壓縮
[root@linux ~]# cd /tmp  
[root@linux tmp]# cp /etc/man.config .  
[root@linux tmp]# gzip man.config  
# 此時 man.config 會變成 man.config.gz !
 
範例二:將範例一的檔案內容讀出來!
[root@linux tmp]# zcat man.config.gz
# 此時屏幕上會顯示 man.config.gz 解壓縮之後的檔案內容!!
 
範例三:將範例一的檔案解壓縮
[root@linux tmp]# gzip -d man.config.gz
 
範例四:將範例三解開的 man.config 用最佳的壓縮比壓縮,並保留原本的檔案
[root@linux tmp]# gzip -9 -c man.config > man.config.gz

2.bzip2, bzcat

[root@linux ~]# bzip2 [-cdz] 檔名
[root@linux ~]# bzcat 檔名.bz2
參數:
-c  :將壓縮的過程產生的數據輸出到屏幕上!
-d  :解壓縮的參數
-z  :壓縮的參數
-#  :與 gzip 同樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!
範例:
範例一:將剛剛的 /tmp/man.config 以 bzip2 壓縮
[root@linux tmp]# bzip2 -z man.config  
# 此時 man.config 會變成 man.config.bz2 !
 
範例二:將範例一的檔案內容讀出來!
[root@linux tmp]# bzcat man.config.bz2
# 此時屏幕上會顯示 man.config.bz2 解壓縮之後的檔案內容!!
 
範例三:將範例一的檔案解壓縮
[root@linux tmp]# bzip2 -d man.config.bz2

範例四:將範例三解開的 man.config 用最佳的壓縮比壓縮,並保留原本的檔案
[root@linux tmp]# bzip2 -9 -c man.config > man.config.bz2

3.tar

[root@linux ~]# tar [-cxtzjvfpPN] 檔案與目錄 ....
參數:
-c  :建立一個壓縮檔案的參數指令(create 的意思);
-x  :解開一個壓縮檔案的參數指令!  
-t  :查看 tarfile 裡面的檔案!
      特別註意,在參數的下達中, c/x/t 僅能存在一個!不可同時存在!
      因為不可能同時壓縮與解壓縮。
-z  :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
-j  :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
-v  :壓縮的過程中顯示檔案!這個常用,但不建議用在背景執行過程!
-f  :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加參數!
   例如使用『 tar -zcvfP tfile sfile』就是錯誤的寫法,要寫成
   『 tar -zcvPf tfile sfile』才對喔!
-p  :使用原檔案的原來屬性(屬性不會依據使用者而變)  
-P  :可以使用絕對路徑來壓縮!
-N  :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的檔案中!  
--exclude FILE:在壓縮的過程中,不要將 FILE 打包!

範例:
範例一:將整個 /etc 目錄下的檔案全部打包成為 /tmp/etc.tar  
[root@linux ~]# tar -cvf /tmp/etc.tar /etc  <==僅打包,不壓縮!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc  <==打包後,以 gzip 壓縮
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc  <==打包後,以 bzip2 壓縮
# 特別註意,在參數 f 之後的檔案檔名是自己取的,我們習慣上都用 .tar 來作為辨識。
# 如果加 z 參數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file ~
# 如果加 j 參數,則以 .tar.bz2 來作為附檔名啊~
# 上述指令在執行的時候,會顯示一個警告訊息:
# 『tar: Removing leading `/' from member names』那是關於絕對路徑的特殊設定。
 
範例二:查閱上述 /tmp/etc.tar.gz 檔案內有哪些檔案?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz  
# 由於我們使用 gzip 壓縮,所以要查閱該 tar file 內的檔案時,
# 就得要加上 z 這個參數了!這很重要的!
 
範例三:將 /tmp/etc.tar.gz 檔案解壓縮在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
# 在預設的情況下,我們可以將壓縮檔在任何地方解開的!以這個範例來說,
# 我先將工作目錄變換到 /usr/local/src 底下,並且解開 /tmp/etc.tar.gz ,

# 則解開的目錄會在 /usr/local/src/etc 呢!另外,如果您進入 /usr/local/src/etc
# 則會發現,該目錄下的檔案屬性與 /etc/ 可能會有所不同喔!
 
範例四:在 /tmp 底下,我只想要將 /tmp/etc.tar.gz 內的 etc/passwd 解開而已
[root@linux ~]# cd /tmp

[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
# 我可以透過 tar -ztvf 來查閱 tarfile 內的文件名稱,如果單隻要一個檔案,
# 就可以透過這個方式來下達!註意到! etc.tar.gz 內的根目錄 / 是被拿掉了!
 
範例五:將 /etc/ 內的所有檔案備份下來,並且保存其許可權!
[root@linux ~]# tar -zcvpf /tmp/etc.tar.gz /etc
# 這個 -p 的屬性是很重要的,尤其是當您要保留原本檔案的屬性時!
 
範例六:在 /home 當中,比 2005/06/01 新的檔案才備份
[root@linux ~]# tar -N '2005/06/01' -zcvf home.tar.gz /home
 
範例七:我要備份 /home, /etc ,但不要 /home/dmtsai  
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
 
範例八:將 /etc/ 打包後直接解開在 /tmp 底下,而不產生檔案!  
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf - /etc | tar -xvf -
# 這個動作有點像是 cp -r /etc /tmp 啦~依舊是有其有用途的!
# 要註意的地方在於輸出檔變成 - 而輸入檔也變成 - ,又有一個 | 存在~
# 這分別代表 standard output, standard input 與管線命令啦!

 


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

-Advertisement-
Play Games
更多相關文章
  • 之所以為上集,是因為我並沒有解決這個問題,寫這篇博文的目的是紀錄一下我所遇到的問題,以免自己忘記,其實已經忘了差不多了,寫的過程也是自己回顧的過程,並且之前收集有關 ASP.NET 5 身份驗證的書簽已經太多了,所以必須記錄下來。
  • 如果不想延遲載入,可以通過設置:context.Configuration.LazyLoadingEnabled = false;或查詢時加上AsNoTracking()方法即可。如果不想生成代理,可以通過設置:context.Configuration.ProxyCreationEnabled =...
  • 目前不清楚原因,但是將項目文件放到C盤就可以正常調試運行。記錄一下
  • 我們都知道Asp.net MVC自帶的Action可以有多種類型,比如ActionResult,ContentResult,JsonResult……,但是很遺憾沒有支持直接返回XML的XmlResult。當然,你也可以用ActionResult或者ContentResult,然後直接返回xml字元串...
  • 軟體開發生命周期1.1 可行性分析與項目開發這個階段主要確定軟體開發的目標及其可行性,明確要解決的問題及解決辦法,以及解決問題需要的費用、資源、時間。要進行問題定義、可行性分析,制定項目開發計劃。該階段產生的文檔主要有可行性分析報告和項目開發計劃。1.2 需求分析需求分析是明確軟體系統要做什麼,確定...
  • Quartz.NET是一個被廣泛使用的開源作業調度框架 , 由於是用C#語言創建,可方便的用於winform和asp.net應用程式中。Quartz.NET提供了巨大的靈活性但又兼具簡單性。開發人員可用它快捷的創建並執行一個自動化作業。Quartz.NET有很多特征,如:資料庫支持,集群,插件,.....
  • 關於一隻菜鳥的第一篇博客、請大家多多指教!給予指導和意見!無圖無真相,效果圖如下:為了實現在gridcontrol插入一列checkbox,並通過表頭的checkbox實現全部選中以及全部不選的效果;我參考了很多博客,終於用清爽的代碼提煉出了我想要的清晰效果;1. 表頭的實現: 用了一個數據模板實....
  • 要說,這也是一個很簡單的功能,沒必要開一篇博客這麼大動干戈。 對於一張知道全路徑的照片,如果其路徑包含尾碼名的話,要取得尾碼名,只需要一行代碼即可:1varext = System.IO.Path.GetExtension("C:\\soar.jpg");可是,如果這個文件的文件名不包含尾碼怎麼辦?...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...