Linux中國

了解 7z 命令開關(一)

7z 無疑是一個功能強大的強大的歸檔工具(聲稱提供最高的壓縮比)。在 HowtoForge 中,我們已經已經討論過如何安裝和使用它。但討論僅限於你可以使用該工具提供的「功能字母」來使用基本功能。

在本教程中,我們將擴展對這個工具的說明,我們會討論一些 7z 提供的「開關」。 但在繼續之前,需要說明的是,本教程中提到的所有說明和命令都已在 Ubuntu 16.04 LTS 上進行了測試。

注意:我們將使用以下截圖中顯示的文件來執行使用 7zip 的各種操作。

ls from test directory

包含文件

7z 工具允許你有選擇地將文件包含在歸檔中。可以使用 -i 開關來使用此功能。

語法:

-i[r[-|0]]{@listfile|!wildcard}

比如,如果你想在歸檔中只包含 「.txt」 文件,你可以使用下面的命令:

$ 7z a 『-i!*.txt』 include.7z

這是輸出:

add files to 7zip

現在,檢查新創建的歸檔是否只包含 「.txt」 文件,你可以使用下面的命令:

$ 7z l include.7z

這是輸出:

Result

在上面的截圖中,你可以看到 「testfile.txt」 已經包含到歸檔中了。

排除文件

如果你想要,你可以排除不想要的文件。可以使用 -x 開關做到。

語法:

-x[r[-|0]]]{@listfile|!wildcard}

比如,如果你想在要創建的歸檔中排除 「abc.7z」 ,你可以使用下面的命令:

$ 7z a 『-x!abc.7z』 exclude.7z

這是輸出:

exclude files from 7zip

要檢查最後的歸檔是否排除了 「abc.7z」, 你可以使用下面的命令:

$ 7z l exclude.7z

這是輸出:

result of file exclusion

上面的截圖中,你可以看到 「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

protect 7zip archive with a password

設置輸出目錄

工具同樣支持解壓文件到你選擇的目錄中。這可以使用 -o 開關。無需多說,這個開關只在含有 e 或者 x 功能字母的時候有用。

$ 7z [e/x] [existing-archive-filename] -o[path-of-directory]

比如,假設下面命令工作在當前的工作目錄中:

$ 7z e output.7z -ohow/to/forge

-o 開關的值所指的那樣,它的目標是解壓文件到 ./how/to/forge 中。

這是輸出:

7zip output directory

在上面的截圖中,你可以看到歸檔文件的所有內容都已經解壓了。但是在哪裡?要檢查文件是否被解壓到 ./how/to/forge,我們可以使用 ls -R 命令。

result

在上面的截圖中,我們可以看到 .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 開關的操作。

這是目錄內容的截圖:

7zip volumes

現在,我們運行下面的命令來為一個歸檔文件創建多個卷(每個大小 100b):

7z a volume.7z * -v100b

這是截圖:

compressing volumes

現在,要查看創建的子歸檔,使用 ls 命令。

list of archives

如下截圖所示,一共創建四個卷 - 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」 命令生成)的列表,其名稱表示其創建中使用的壓縮級別,輸出中的第五列顯示壓縮級別對其大小的影響。

7zip compression level

顯示歸檔的技術信息

如果需要,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

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國