成為Mac高階用戶必備基礎 第九篇:macOS內置命令 1. 壓縮

2021-02-14 編程聯盟

在本文中,我們將探討macOS作業系統副本中附帶的不同命令。有大量不同的命令可供選擇。這些命令中有很多是用來操作文件或處理文本的。

在我們開始之前,我們將需要文件來操作,這樣你就可以跟著做了。如果你有把握,你可以使用自己的文件作為源頭。

我們需要大塊的文本。也許值得在你的主目錄中專門為下一步創建一個文件夾。另外,如果你想使用一個臨時目錄,這個目錄會在下次系統重啟時自動刪除,你可以使用這個命令:

這將創建一個臨時目錄,並將其cd到其中。

每次運行它,你會在不同的臨時目錄中結束,所以要注意你最終的位置,而不是多次運行它。

% cd "$(mktemp -d)"% pwd/var/folders/5z/tnwhfkg57hdfys5fxckr07_h0000gn/T/tmp.QPg0xWOB

我們需要下載我的充滿文本文件的檔案,使用curl命令。

% curl --location -o master.zip https://github.com/hackzilla/random-files/archive/master.zip

如果一切順利,你應該在你當前的目錄下有一個文件,叫做master.zip。請注意你運行這個命令的位置,因為這將是存儲下載的地方。如果有疑問,運行pwd命令。

我將假設你把master.zip下載到了你的主目錄下。

無論是為了節省空間,還是為了節省帶寬,歸根結底,壓縮就是為了省錢。壓縮就是以一種可逆的方式減少文件的大小。

也就是說,每一種壓縮方法,都會有一種解壓文件的方法。我將向你展示兩種常見的壓縮形式--zip和gzip--你將在網際網路上遇到。你將會看到每一種壓縮方法的操作。我們將下載幾個檔案,並在本章中使用它們。

當我想到zip壓縮時,我就會想起PKZIP和WinZip。這些都是在DOS和Windows上壓縮和解壓文件和文件夾的程序。你可能不知道的是,PKZIP是由一家叫PKWARE的公司製作的。PKWARE的創始人Phil Katz在1989年將這種文件格式發布到公共領域。不久之後,有一個叫Info-ZIP的項目,發布了壓縮和解壓文件的開源實用程序。我們將使用之前下載的master.zip文件。

1. 解壓:

解壓是指將一個單一的壓縮檔案,從裡面提取文件和文件夾的過程。由於我們已經有了一個壓縮文件,所以我們需要先對文件進行解壓,也叫解壓。

解壓zip文件的命令是unzip ,如下:

% unzip --helpUnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Sendbug reports using http:Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]  Default action is to extract files in list, except those in xlist, to exdir;  file[.zip] may be a wildcard.

2. 測試Zip文件的完整性:

在我們從master.zip中解壓文件之前,我們應該使用-t選項驗證下載的存檔是否正確。這將會比較存檔和存儲在存檔中的文件的校驗和。

% unzip -t master.zipArchive: master.zip025d101299c770c5f305e731cce76368c7201fb0    testing: random-files-master/OK    testing: random-files-master/Readme.md OK    ...No errors detected in compressed data of master.zip.

如果文件下載時出現錯誤,您應該嘗試重新下載。如果在存檔中沒有檢測到錯誤,你可以繼續。

3. 列出壓縮文件的內容:

如果你想在解壓之前了解一個壓縮文件的內容,你可以用 -l 選項查看它的內容。

% unzip -l master.zipArchive:  master.zip025d101299c770c5f305e731cce76368c7201fb0  Length      Date    Time    Name----      ----        0  11-16-2019 22:20   random-files-master/       64  11-16-2019 22:20   random-files-master/Readme.md     3857  11-16-2019 22:20   random-files-master/bible.txt     9500  11-16-2019 22:20   random-files-master/decamerone.txt     2419  11-16-2019 22:20   random-files-master/faust.txt     3178  11-16-2019 22:20   random-files-master/fleurs.txt     2094  11-16-2019 22:20   random-files-master/lorem.txt     2885  11-16-2019 22:20   random-files-master/raven.txt     2642  11-16-2019 22:20   random-files-master/spook.txt      458  11-16-2019 22:20   random-files-master/strandberg.txt     4691  11-16-2019 22:20   random-files-master/strindberg.txt     5125  11-16-2019 22:20   random-files-master/walden.txt----                     --    36913                     12 files

你應該注意的是,這個列表中的文件是否在一個文件夾中。在這個例子中,文件是在一個叫隨機文件的目錄中。你最不想做的就是展開一個壓縮包,然後所有的文件都出現在你的主目錄中。

如果壓縮包不包含一個目錄,你可以很容易地創建一個目錄,並將壓縮包移入,在解壓文件之前,所有的文件都會出現在這個目錄中。

% mkdir random-files-master% mv master.zip random-files-master

現在我們知道在home目錄下展開是安全的,我們可以解壓它。

% unzip master.zipArchive:  master.zip025d101299c770c5f305e731cce76368c7201fb0   creating: random-files-master/  inflating: random-files-master/Readme.md  inflating: random-files-master/bible.txt  inflating: random-files-master/decamerone.txt  ...

現在,你會發現在你當前的目錄中,有一個名為隨機文件-主目錄,它包含了壓縮文件中的所有文件。這就是從壓縮文件中提取文件的基本過程。

4. 壓縮:

說到解壓,就不能不提創建壓縮包的過程。

% zip --helpCopyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.Zip 3.0 (July 5th 2008).

當涉及到壓縮文件時,你有更多的選擇。

你想讓存檔更小或更快地壓縮和解壓嗎?你想不想對內容進行加密?

之前,你看到master.zip的所有文件都存儲在一個叫隨機文件的目錄中。現在,你可以看到從文件文件夾中創建zip文件時的區別。zip命令包含了你當前目錄的完整目錄路徑。

% zip with-directory.zip random-files-master

注意:如果你使用 ~ tilde 符號,zip 命令將包含完整的目錄。

% zip with-directory.zip ~/random-files-master/*  adding: Users/danielplatt/random-files-master/BinaryEncoding.md (deflated 74%)

如果你想在沒有父目錄的情況下創建存檔,你需要在隨機文件目錄下。

% cd random-files-master% zip without-directory.zip *  adding: BinaryEncoding.md (deflated 74%)

5. 調整檔案的大小:


有一個選項可以改變使用zip的壓縮程度,從無壓縮到最慢的壓縮。壓縮的速度越慢,計算機花在壓縮檔案上的時間就越多。

在下面的命令中,#被一個從0到9的數字代替。0是沒有壓縮,1是最快的壓縮,9是最慢的壓縮。如果沒有提供這個選項,zip將使用默認值6。

如果你想把壓縮文件做得越小越好,你會使用-9。

% zip -9 with-directory.zip random-files-master

6. 加密檔案:

當創建壓縮包時,你可以選擇使用-e選項啟用加密,然後為壓縮包指定一個密碼。如果你要在網際網路上傳輸敏感信息,或者你想把敏感信息存儲在拇指驅動器上,但又想確保如果有人找到它,他們無法讀取文件。

% zip -e with-directory.zip random-files-master/*Enter password:Verify password:

值得注意的是,文件是以每個文件為基礎進行加密的,而不是對整個存檔進行加密。這意味著你仍然可以看到存檔的文件列表。你可以通過對存檔進行加密重新壓縮來防止該列表。

使用加密解壓就像運行解壓命令一樣簡單。當解壓遇到加密文件時,系統會提示您輸入密碼。

% unzip with-directory.zipArchive: with-directory.zip[with-directory.zip] random-files-master/BinaryEncoding.md password:

7. 壓縮目錄:

最後要提到的是,如果你試圖壓縮一個有其他目錄的目錄,你當前使用的命令會跳過這些目錄。你需要使用-r選項告訴zip遞歸地進入這些文件夾。

% zip -r with-directory.zip random-files-master

1992年,在zip文件格式發布到公共領域幾年後,第一個版本的gzip就出現了。

% gzip --helpApple gzip 287.40.2usage: gzip [-123456789acdfhklLNnqrtVv] [-S .suffix] [<file> [<file> ...]] -1 --fast            fastest (worst) compression -2 .. -8             set compression level -9 --best            best (slowest) compression

gzip和zip壓縮之間有很多相似之處。與gzip的一個很大的區別是,它不會將多個文件壓縮成一個檔案。你可以嘗試用-r選項壓縮整個文件夾。

% gzip -r random-files-master% ls random-files-masterBinaryEncoding.md.gz   FAQ.md.gz   LICENSE.gz   README.md.gz   UseCases.md.gz

gzip會單獨壓縮每個文件。你可以用-d選項反轉這個過程。

% gzip -rd random-files-master

如果gzip不能壓縮超過一個文件,那麼它可以用來做什麼呢?一個例子是日誌文件。它們通常會被旋轉,以防止它們變得太大。有時它們是按時間(日或周)輪換的,有時是按大小輪換的。

% ls -l /var/log/system.log*

那用gzip壓縮多個文件呢?有一個解決辦法,那就是備份到磁帶上。

Tar

你可能更熟悉電腦上的SSD和拇指驅動器的存儲。然而,當你試圖備份大量數據時,這些形式的存儲最終將非常昂貴。

磁帶存儲是一種在小空間內存儲大量數據的較便宜的方式。從圖3-1可以看出,一盤磁帶最多可存儲30TB的數據。以磁帶機的價格,你可以買一個僅能容納6TB的硬碟。

當備份到磁帶時,你需要將文件系統轉換為可以寫入磁帶存檔的單一數據流。這樣做的命令叫做tar

% tar tar(bsdtar): manipulate archive filesFirst option must be a mode specifier:  -c Create  -r Add/Replace  -t List  -u Update  -x Extract

使用 tar,我們可以使用 -c 創建一個存檔,並使用 gzip 和 -z 壓縮它。你還需要提供 -f 來將結果的存檔保存到文件中。否則,存檔將被輸出到終端。

% tar -czf master.tar.gz random-files-master

現在你已經有了你的 tar 存檔文件,你可以用 -t 選項查看它的內部。

% tar -tf master.tar.gzrandom-files/random-files/HighLevelGoals.mdrandom-files/NonWeb.mdrandom-files/Tooling.mdrandom-files/TextFormat.mdrandom-files/MVP.mdrandom-files/LICENSE

你可以使用 -x 選項從 tar 存檔中提取文件。

相關焦點

  • 成為Mac高階用戶必備基礎 第十篇:macOS內置命令 2. 文件的使用 上篇​
    這就有了 grep 命令。% grep -a1 -b1 Statistics system.log0-Nov 19 00:40:11 --- last message repeated 1 time ---53:Nov 19 00:40:10 MacBook-Pro syslogd[90]: ASL Sender Statistics116-Nov 19 00:40:11
  • 成為Mac高階用戶必備基礎 七
    wheel 2016 10 Jun 18:24 sbinlrwxr-xr-x@ 1 root admin 11 5 Nov 2019 tmp -> private/tmpdrwxr-xr-x@ 11 root wheel 352 5 Nov 2019 usrlrwxr-xr-x@ 1 root admin 11 5 Nov 2019 var ->
  • 成為Mac高階用戶必備基礎 八
    當你使用過很多不同的電腦時,你就會學會一些方便的技巧和命令。由於我有使用Ubuntu背景,我經常使用的是ll("LL")命令,它可以列印出當前目錄下的文件列表,還有很多有用的信息。那麼如何在你的終端上得到這些信息,而不需要你自己編寫版本呢?好吧,ll實際上就是ls命令,但有一些額外的參數。你可以通過別名來實現.
  • 新的Amazon EC2 Mac實例允許開發人員構建和測試macOS、iOS、iPadOS、tvOS和watchOS應用程式!
    不要錯過這篇精彩的文章。
  • mac必備軟體之16.9.1更新
    今天給大家帶來了三款壓箱底軟體:前段時間有個女生跟我反應說自己的macos系統被舍友鄙視的不要不要的,我很納悶
  • macOS免費解壓縮軟體,要不要試一下360壓縮?
    就目前來看,macOS平臺免費解壓縮軟體已經有一些優秀的可選對象了,例如The Unarchiver、e-zip。這不,360壓縮也來到macOS平臺了,依然是免費。360壓縮首個macOS版本2月17日才對外公開發布,暫時還沒有上架Mac App Store。最先發現不一樣的是logo,mac版本的360壓縮並沒有沿用和Windows版本的logo,反而有點復古風的味道,好不好看就看個人喜好了。
  • Mac 不支持 RAR 格式壓縮怎麼辦?
    可以幫助用戶將所有格式的壓縮文件解壓,雙擊即可進入文件預覽模式(和WinRAR類似), 壓縮包預覽,壓縮包中單個文件解壓,加密壓縮包解壓,解壓快捷入口等功能強大,雙擊即可解壓。    第四款:解壓助手 for Mac(mac解壓工具)  解壓助手mac 是Mac App Store上一款同時支持瀏覽歸檔,解壓,搜索歸檔和壓縮文件的工具。
  • Linux常用命令-解壓縮篇
    前言Linux常用命令中,有很多用於對文件的壓縮或解壓,本文將介紹這些解壓縮命令中不常見卻非常實用的用法。tartar是linux中最常用的解壓縮命令。tar命令可用於處理後綴名為tar,tar.gz,tgz,.tar.Z,tar.bz2的文件。
  • 【Mac好軟推薦】第一期 效率工具(無Mac也可用)(文末紅包抽獎)
    作為一個功能強大,簡潔美觀,簡單易用的系統,macos自然有很多與之風格相匹配的軟體。我曾經幾乎翻遍了所有的答案,並下載測試了很多app,經過一年多的使用,我甄選出了二十餘款優秀軟體,下面幾期,我將一一分享給你們。
  • Mac版專業解壓縮軟體 Archiver解壓軟體
    作為電腦軟體中的必備軟體,解壓縮軟體存在於每一臺電腦中,此次分享的是mac下的專業版解壓縮軟體Archiver
  • Mac值得推薦的冷門軟體
    我更喜歡 Amphetamine 提供的 UI 功能,不僅可以自然地與其他菜單欄項目配合使用,而且還支持熱鍵命令、停用提醒一更不用說沒有任何煩人的廣告了。2. Hyperdock特別是最新版本的 Para1 les 進行了改進,例如 Touch Bar 支持、用於 Retina 顯示屏的更好的縮放比例,以及與 macos 結合使用的畫中畫功能。4. Duet Display
  • MyZip for mac (解壓壓縮工具)
    MyZip for mac是一款全面,好用的解壓、壓縮工具。通過選中文件,『右鍵菜單』進行壓縮、解壓,方便快捷,需要的用戶歡迎來macz下載使用。軟體介紹通過選中文件,『右鍵菜單』進行壓縮、解壓。功能特徵1.解壓功能①常見『所有格式』的壓縮文件解壓;②支持 『右鍵菜單解壓方式』和『雙擊解壓』兩種方式;③支持 『批量解壓每個包到單獨文件夾』。
  • 將照片和視頻從手機導入Mac時如何解決ImageCaptureCore錯誤9937
    但是,如果您尚未安裝macOS 10.13 High Sierra或更高版本,則使用HEIF(高效圖像文件格式)和HEVC(高效視頻編碼)將成為問題。早期版本的Photo和macOS缺少對這兩種壓縮格式的支持。
  • Win10 殺毒:一個命令開啟 Windows Defender 掃描壓縮文件
    在Win10中,Windows Defender作為內置安全軟體越來越強大。在最新發布的Win10創造者更新15002預覽版中,Windows Defender啟用了UWP界面,這也標誌著這款殺軟正在走向成熟。
  • MAC系統 - 基礎知識
    一、基礎操作設置:觸控板設置 - 》學習具體手勢手勢:)1、首先,打開Mac電腦應用菜單中的Launchpad(程序塢中的火箭圖標)。Mac下用 vim 編輯文件mac的vim使用授權並使用vim編輯文件#sudo vim 文件名稱位置根目錄:/用戶文件夾位置:/User/用戶名,可以用波浪號(~
  • 有道詞典Mac版更新 帶給用戶更優質查詞體驗
    近日,有道詞典Mac 1.1版上線,為廣大使用Mac的果粉們帶來了更為優質的查詞體驗。有道詞典Mac版在基本釋義基礎和豐富的網絡釋義功能基礎上,新增日、韓、法多語種查詞和多種權威詞典。此外,新版mac詞典也對於百科功能進行了完善,優化百度百科展示,增加維基百科內容。
  • Smart Zipper for Mac(高效穩定的壓縮/解壓縮工具)
    Smart Zipper 是被設計成一款容易使用的、高效的壓縮/解壓縮工具。支持解壓縮格式: 可解壓縮 RAR, 7z, ISO, CAB, Zip, StuffIt, Lzma, Tar, Gzip, Bzip2…… 等等數十種壓縮包格式。
  • Waves Complete 12 for mac(音頻信號處理工具)
    40:55 來源: Mac一點就透 舉報   Waves Complete 12 for mac
  • Mac用戶收藏!6款超實用必備軟體!
    原標題:Mac用戶收藏!6款超實用必備軟體!     最近,公司新來了一位90後同事。雖然年紀不大,但做起事來卻雷厲風行。交代他的工作任務,完成得比以往的新人都要快。很多同期進來的同事都向他取經,可他偏偏卻說提高工作效率的秘訣全在工位旁的Mac電裡。
  • Java開發必會的Linux命令
    即時平時開發過程中不使用Linux(Unix)或者mac系統,也需要熟練掌握Linux命令。因為很多伺服器上都是Linux系統。所以,要和伺服器機器交互,就要通過shell命令。本文並不會對所有命令進行詳細講解,只給出常見用法和解釋。具體用法可以使用--help查看幫助或者直接通過google搜索學習。