了解 7z 命令開關(一)
7z 無疑是一個功能強大的強大的歸檔工具(聲稱提供最高的壓縮比)。在 HowtoForge 中,我們已經已經討論過如何安裝和使用它。但討論僅限於你可以使用該工具提供的「功能字母」來使用基本功能。
在本教程中,我們將擴展對這個工具的說明,我們會討論一些 7z 提供的「開關」。 但在繼續之前,需要說明的是,本教程中提到的所有說明和命令都已在 Ubuntu 16.04 LTS 上進行了測試。
注意:我們將使用以下截圖中顯示的文件來執行使用 7zip 的各種操作。
包含文件
7z 工具允許你有選擇地將文件包含在歸檔中。可以使用 -i
開關來使用此功能。
語法:
-i[r[-|0]]{@listfile|!wildcard}
比如,如果你想在歸檔中只包含 「.txt」 文件,你可以使用下面的命令:
$ 7z a 『-i!*.txt』 include.7z
這是輸出:
現在,檢查新創建的歸檔是否只包含 「.txt」 文件,你可以使用下面的命令:
$ 7z l include.7z
這是輸出:
在上面的截圖中,你可以看到 「testfile.txt」 已經包含到歸檔中了。
排除文件
如果你想要,你可以排除不想要的文件。可以使用 -x
開關做到。
語法:
-x[r[-|0]]]{@listfile|!wildcard}
比如,如果你想在要創建的歸檔中排除 「abc.7z」 ,你可以使用下面的命令:
$ 7z a 『-x!abc.7z』 exclude.7z
這是輸出:
要檢查最後的歸檔是否排除了 「abc.7z」, 你可以使用下面的命令:
$ 7z l exclude.7z
這是輸出:
上面的截圖中,你可以看到 「abc.7z」 已經從新的歸檔中排除了。
專業提示:假設任務是排除以 「t」 開頭的所有 .7z 文件,並且包含以字母 「a」 開頭的所有 .7z 文件。這可以通過以下方式組合 -i
和 -x
開關來實現:
$ 7z a '-x!t*.7z' '-i!a*.7z' combination.7z
設置歸檔密碼
7z 同樣也支持用密碼保護你的歸檔文件。這個功能可以使用 -p
開關來實現。
$ 7z a [archive-filename] -p[your-password] -mhe=[on/off]
注意:-mhe
選項用來啟用或者禁用歸檔頭加密(默認是「off」)。
例子:
$ 7z a password.7z -pHTF -mhe=on
無需多說,當你解壓密碼保護的歸檔時,工具會向你詢問密碼。要解壓一個密碼保護的文件,使用 e
功能字母。下面是例子:
$ 7z e password.7z
設置輸出目錄
工具同樣支持解壓文件到你選擇的目錄中。這可以使用 -o
開關。無需多說,這個開關只在含有 e
或者 x
功能字母的時候有用。
$ 7z [e/x] [existing-archive-filename] -o[path-of-directory]
比如,假設下面命令工作在當前的工作目錄中:
$ 7z e output.7z -ohow/to/forge
如 -o
開關的值所指的那樣,它的目標是解壓文件到 ./how/to/forge 中。
這是輸出:
在上面的截圖中,你可以看到歸檔文件的所有內容都已經解壓了。但是在哪裡?要檢查文件是否被解壓到 ./how/to/forge,我們可以使用 ls -R
命令。
在上面的截圖中,我們可以看到 .7z 中的內容都被解壓到 ./how/to/forge 中。
創建多個卷
藉助 7z 工具,你可以為歸檔創建多個卷(較小的子檔案)。當通過網路或 USB 傳輸大文件時,這是非常有用的。可以使用 -v
開關使用此功能。這個開關需要指定子檔案的大小。
我們可以以位元組(b)、千位元組(k)、兆位元組(m)和千兆位元組(g)指定子檔案大小。
$ 7z a [archive-filename] [files-to-archive] -v[size-of-sub-archive1] -v[size-of-sub-archive2] ....
讓我們用一個例子來理解這個。請注意,我們將使用一個新的目錄來執行 -v
開關的操作。
這是目錄內容的截圖:
現在,我們運行下面的命令來為一個歸檔文件創建多個卷(每個大小 100b):
7z a volume.7z * -v100b
這是截圖:
現在,要查看創建的子歸檔,使用 ls
命令。
如下截圖所示,一共創建四個卷 - volume.7z.001、volume.7z.002、volume.7z.003 和 volume.7z.004
注意:你可以使用 .7z.001 歸檔文件來解壓。但是,要這麼做,其他所有的卷都應該在同一個目錄內。
設置歸檔的壓縮級別
7z 允許你設置歸檔的壓縮級別。這個功能可以使用 -m
開關。7z 中有不同的壓縮級別,比如:-mx0
、-mx1
、-mx3
、-mx5
、-mx7
和 -mx9
。
這是這些壓縮級別的簡要說明:
mx0
= 完全不壓縮 - 只是複製文件到歸檔中。mx1
= 消耗最少時間,但是壓縮最小。mx3
= 比-mx1
好。mx5
= 這是默認級別 (常規壓縮)。mx7
= 最大化壓縮。mx9
= 極端壓縮。
注意:關於這些壓縮級別的更多信息,閱讀這裡。
$ 7z a [archive-filename] [files-to-archive] -mx=[0,1,3,5,7,9]
例如,我們在目錄中有一堆文件和文件夾,我們每次嘗試使用不同的壓縮級別進行壓縮。作為一個例子,這是當使用壓縮級別 「0」 時創建存檔時使用的命令。
$ 7z a compression(-mx0).7z * -mx=0
相似地,其他命令也這樣執行。
以下是輸出檔案(使用 「ls」 命令生成)的列表,其名稱表示其創建中使用的壓縮級別,輸出中的第五列顯示壓縮級別對其大小的影響。
顯示歸檔的技術信息
如果需要,7z 還可以在標準輸出中顯示歸檔的技術信息 - 類型、物理大小、頭大小等。可以使用 -slt
開關使用此功能。 此開關僅適用於帶有 l
功能字母的情況下。
$ 7z l -slt [archive-filename]
比如:
$ 7z l -slt abc.7z
這是輸出:
指定創建歸檔的類型
如果你想要創建一個非 7z 的歸檔文件(這是默認的創建類型),你可以使用 -t
開關來指定。
$ 7z a -t[specify-type-of-archive] [archive-filename] [file-to-archive]
下面的例子展示創建了一個 .zip 文件:
7z a -tzip howtoforge *
輸出的文件是 「howtoforge.zip」。要交叉驗證它的類型,使用 file
命令:
因此,howtoforge.zip 的確是一個 ZIP 文件。相似地,你可以創建其他 7z 支持的歸檔。
總結
你將會認識到, 7z 的 「功能字母」 以及 「開關」 的知識可以讓你充分利用這個工具。我們還沒有完成開關的部分 - 其餘部分將在第 2 部分中討論。
via: https://www.howtoforge.com/tutorial/understanding-7z-command-switches/
作者:Himanshu Arora 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive