前言
劃重點
相對于windows下的鼠標點點拖拖,linux在終端,大概率是用不著界面操作文件和文件夾的。
Linux是開放源代碼的,由數量龐大的
打包
壓縮,解壓縮軟件千千萬,打包解包的指令只一個——tar。
好用指出,我想都不用多說了吧。
使用mantar查看該手冊,重點的功能描述,和示例都圈出來了。
因為一般的壓縮軟件,僅能對單個文件進行壓縮,如果對于目錄,是無法操作的。所以這時候需要“打包”,把一堆雜七雜八的文件,甭管什么往一個包里一裝。這就是一個整體,然后調用壓縮指令,就可以了。這也是linux系統實踐中最常用的方法。
英文的不直觀,下面是中文的參數注釋。
壓縮軟件
終于說到壓縮軟件了。Linux下還有不少選擇,常見一些壓縮文件的擴展名會有
*.tar,*.tar.gz,*.tgz,*.gz,*.Z,*.bz2,*.xz
我們知道,linux的文檔擴展名是沒有用的,這樣寫只是用于標識,該文檔是基于那個軟件產生的。
gzip是GNU軟件,業已取代了較為古舊的compress指令。完全支持windows下使用較高的zip文件的壓縮解壓。
后來GNU又開發出了bzip2和xz,這些壓縮效果比較好,效率比較高的軟件。但是這3款軟件,通暢僅能針對一個文件進行壓縮和解壓縮。這樣的話,如果操作為數眾多的文件,豈不崩潰!
所以,就體現出上一節所說tar打包指令的重要性。
言歸正傳。下面是gzip的常用參數和使用方式。
gzip[-cdtv#]文件名
其中,
-c將壓縮數據輸出到終端stdout
-d解壓縮
-t用來減壓一個壓縮文件的一致性,檢查文件是否有誤
-v可視化顯示原文件,壓縮文件壓縮比等信息
下面通過例子來說明其用法。我們使用圖片展示這個過程。
前提是我們創建了一個目錄
mkdir-pv/tmp/gzip_demo
然后創建一個隨機文件,并填充一些內容
opensslrand-base641024984>log
生成的單文件log使用gzip進行壓縮
gzip-vlog
可以看到,壓縮比率和目標文件名。log文件被替換。這是gzip的工作原理。
組裝起來,更強大!
Linux下的指令,通過管道符的助力,可以讓你的代碼隨著思緒飛舞,一行解決戰斗,瞬間搞定!
下面結合打包指令tar,進行一些更為復雜的壓縮操作。
例如,
指令需要像下面這樣寫:
tar-zcv-f/root/system.tar.bz2--exclude=/root/etc*--exclude=/root/system.tar.gz/etc/root
逐一說明參數的用法:
-z使用gzip壓縮
-c創建文檔
-v展示詳細信息
--exclude指定不包含規則
因為目標文檔也在壓縮文檔內,所以一定要追加到--exclude選項內。否則死循環。
直接上指令:
tar-zcv-f/root/etc.newer.tar.gz--newer-mtime="2019/10/01"/etc/*
主要使用了--newer-mtime選項。別的都與上一條一致。
結語
好了,簡短寫到這兒吧。Linux下工具很多,效率很高,持續多年生產環境打磨,性能穩定的一匹。你值得信賴。
windows下,動不動就要授權,動不動就要彈廣告的壓縮軟件,真的不堪回首。
Happycoding:-)
【本文由@程序員小助手發布,持續分享編程的故事,】