自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Linux上壓縮文件:zip命令的各種變體及用法

系統(tǒng) Linux
除了壓縮和解壓縮文件外,你還可以使用 zip 命令執(zhí)行許多有趣的操作。這是一些其他的 zip 選項以及它們如何提供幫助。

[[315747]]

除了壓縮和解壓縮文件外,你還可以使用 zip 命令執(zhí)行許多有趣的操作。這是一些其他的 zip 選項以及它們如何提供幫助。

為了節(jié)省一些磁盤空間并將文件打包在一起進行歸檔,我們中的一些人已經(jīng)在 Unix 和 Linux 系統(tǒng)上壓縮文件數(shù)十年了。即使這樣,并不是所有人都嘗試過一些有趣的壓縮工具的變體。因此,在本文中,我們將介紹標準的壓縮和解壓縮以及其他一些有趣的壓縮選項。

基本的 zip 命令

首先,讓我們看一下基本的 zip 命令。它使用了與 gzip 基本上相同的壓縮算法,但是有一些重要的區(qū)別。一方面,gzip 命令僅用于壓縮單個文件,而 zip 既可以壓縮文件,也可以將多個文件結合在一起成為歸檔文件。另外,gzip 命令是“就地”壓縮。換句話說,它會只留下一個壓縮文件,而原始文件則沒有了。 這是工作中的 gzip 示例:

  1. $ gzip onefile
  2. $ ls -l
  3. -rw-rw-r-- 1 shs shs 10514 Jan 15 13:13 onefile.gz

而下面是 zip。請注意,此命令要求為壓縮存檔提供名稱,其中 gzip(執(zhí)行壓縮操作后)僅使用原始文件名并添加 .gz 擴展名。

  1. $ zip twofiles.zip file*
  2. adding: file1 (deflated 82%)
  3. adding: file2 (deflated 82%)
  4. $ ls -l
  5. -rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
  6. -rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
  7. -rw-rw-r-- 1 shs shs 21289 Jan 15 13:35 twofiles.zip

請注意,原始文件仍位于原處。

所節(jié)省的磁盤空間量(即獲得的壓縮程度)將取決于每個文件的內容。以下示例中的變化很大。

  1. $ zip mybin.zip ~/bin/*
  2. adding: bin/1 (deflated 26%)
  3. adding: bin/append (deflated 64%)
  4. adding: bin/BoD_meeting (deflated 18%)
  5. adding: bin/cpuhog1 (deflated 14%)
  6. adding: bin/cpuhog2 (stored 0%)
  7. adding: bin/ff (deflated 32%)
  8. adding: bin/file.0 (deflated 1%)
  9. adding: bin/loop (deflated 14%)
  10. adding: bin/notes (deflated 23%)
  11. adding: bin/patterns (stored 0%)
  12. adding: bin/runme (stored 0%)
  13. adding: bin/tryme (deflated 13%)
  14. adding: bin/tt (deflated 6%)

unzip 命令

unzip 命令將從一個 zip 文件中恢復內容,并且,如你所料,原來的 zip 文件還保留在那里,而類似的 gunzip 命令將僅保留未壓縮的文件。

  1. $ unzip twofiles.zip
  2. Archive: twofiles.zip
  3. inflating: file1
  4. inflating: file2
  5. $ ls -l
  6. -rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
  7. -rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
  8. -rw-rw-r-- 1 shs shs 21289 Jan 15 13:35 twofiles.zip

zipcloak 命令

zipcloak 命令對一個 zip 文件進行加密,提示你輸入兩次密碼(以確保你不會“胖手指”),然后將該文件原位存儲。你可以想到,文件大小與原始文件會有所不同。

  1. $ zipcloak twofiles.zip
  2. Enter password:
  3. Verify password:
  4. encrypting: file1
  5. encrypting: file2
  6. $ ls -l
  7. total 204
  8. -rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
  9. -rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
  10. -rw-rw-r-- 1 shs shs 21313 Jan 15 13:46 twofiles.zip <== slightly larger than
  11. unencrypted version

請記住,壓縮包之外的原始文件仍處于未加密狀態(tài)。

zipdetails 命令

zipdetails 命令將向你顯示詳細信息:有關壓縮文件的詳細信息,可能比你想象的要多得多。即使我們正在查看一個加密的文件,zipdetails 也會顯示文件名以及文件修改日期、用戶和組信息、文件長度數(shù)據(jù)等。請記住,這都是“元數(shù)據(jù)”。我們看不到文件的內容。

  1. $ zipdetails twofiles.zip
  2.  
  3. 0000 LOCAL HEADER #1 04034B50
  4. 0004 Extract Zip Spec 14 '2.0'
  5. 0005 Extract OS 00 'MS-DOS'
  6. 0006 General Purpose Flag 0001
  7. [Bit 0] 1 'Encryption'
  8. [Bits 1-2] 1 'Maximum Compression'
  9. 0008 Compression Method 0008 'Deflated'
  10. 000A Last Mod Time 4E2F6B24 'Tue Jan 15 13:25:08 2019'
  11. 000E CRC F1B115BD
  12. 0012 Compressed Length 00002904
  13. 0016 Uncompressed Length 0000E2A5
  14. 001A Filename Length 0005
  15. 001C Extra Length 001C
  16. 001E Filename 'file1'
  17. 0023 Extra ID #0001 5455 'UT: Extended Timestamp'
  18. 0025 Length 0009
  19. 0027 Flags '03 mod access'
  20. 0028 Mod Time 5C3E2584 'Tue Jan 15 13:25:08 2019'
  21. 002C Access Time 5C3E27BB 'Tue Jan 15 13:34:35 2019'
  22. 0030 Extra ID #0002 7875 'ux: Unix Extra Type 3'
  23. 0032 Length 000B
  24. 0034 Version 01
  25. 0035 UID Size 04
  26. 0036 UID 000003E8
  27. 003A GID Size 04
  28. 003B GID 000003E8
  29. 003F PAYLOAD
  30.  
  31. 2943 LOCAL HEADER #2 04034B50
  32. 2947 Extract Zip Spec 14 '2.0'
  33. 2948 Extract OS 00 'MS-DOS'
  34. 2949 General Purpose Flag 0001
  35. [Bit 0] 1 'Encryption'
  36. [Bits 1-2] 1 'Maximum Compression'
  37. 294B Compression Method 0008 'Deflated'
  38. 294D Last Mod Time 4E2F6C56 'Tue Jan 15 13:34:44 2019'
  39. 2951 CRC EC214569
  40. 2955 Compressed Length 00002913
  41. 2959 Uncompressed Length 0000E635
  42. 295D Filename Length 0005
  43. 295F Extra Length 001C
  44. 2961 Filename 'file2'
  45. 2966 Extra ID #0001 5455 'UT: Extended Timestamp'
  46. 2968 Length 0009
  47. 296A Flags '03 mod access'
  48. 296B Mod Time 5C3E27C4 'Tue Jan 15 13:34:44 2019'
  49. 296F Access Time 5C3E27BD 'Tue Jan 15 13:34:37 2019'
  50. 2973 Extra ID #0002 7875 'ux: Unix Extra Type 3'
  51. 2975 Length 000B
  52. 2977 Version 01
  53. 2978 UID Size 04
  54. 2979 UID 000003E8
  55. 297D GID Size 04
  56. 297E GID 000003E8
  57. 2982 PAYLOAD
  58.  
  59. 5295 CENTRAL HEADER #1 02014B50
  60. 5299 Created Zip Spec 1E '3.0'
  61. 529A Created OS 03 'Unix'
  62. 529B Extract Zip Spec 14 '2.0'
  63. 529C Extract OS 00 'MS-DOS'
  64. 529D General Purpose Flag 0001
  65. [Bit 0] 1 'Encryption'
  66. [Bits 1-2] 1 'Maximum Compression'
  67. 529F Compression Method 0008 'Deflated'
  68. 52A1 Last Mod Time 4E2F6B24 'Tue Jan 15 13:25:08 2019'
  69. 52A5 CRC F1B115BD
  70. 52A9 Compressed Length 00002904
  71. 52AD Uncompressed Length 0000E2A5
  72. 52B1 Filename Length 0005
  73. 52B3 Extra Length 0018
  74. 52B5 Comment Length 0000
  75. 52B7 Disk Start 0000
  76. 52B9 Int File Attributes 0001
  77. [Bit 0] 1 Text Data
  78. 52BB Ext File Attributes 81B40000
  79. 52BF Local Header Offset 00000000
  80. 52C3 Filename 'file1'
  81. 52C8 Extra ID #0001 5455 'UT: Extended Timestamp'
  82. 52CA Length 0005
  83. 52CC Flags '03 mod access'
  84. 52CD Mod Time 5C3E2584 'Tue Jan 15 13:25:08 2019'
  85. 52D1 Extra ID #0002 7875 'ux: Unix Extra Type 3'
  86. 52D3 Length 000B
  87. 52D5 Version 01
  88. 52D6 UID Size 04
  89. 52D7 UID 000003E8
  90. 52DB GID Size 04
  91. 52DC GID 000003E8
  92.  
  93. 52E0 CENTRAL HEADER #2 02014B50
  94. 52E4 Created Zip Spec 1E '3.0'
  95. 52E5 Created OS 03 'Unix'
  96. 52E6 Extract Zip Spec 14 '2.0'
  97. 52E7 Extract OS 00 'MS-DOS'
  98. 52E8 General Purpose Flag 0001
  99. [Bit 0] 1 'Encryption'
  100. [Bits 1-2] 1 'Maximum Compression'
  101. 52EA Compression Method 0008 'Deflated'
  102. 52EC Last Mod Time 4E2F6C56 'Tue Jan 15 13:34:44 2019'
  103. 52F0 CRC EC214569
  104. 52F4 Compressed Length 00002913
  105. 52F8 Uncompressed Length 0000E635
  106. 52FC Filename Length 0005
  107. 52FE Extra Length 0018
  108. 5300 Comment Length 0000
  109. 5302 Disk Start 0000
  110. 5304 Int File Attributes 0001
  111. [Bit 0] 1 Text Data
  112. 5306 Ext File Attributes 81B40000
  113. 530A Local Header Offset 00002943
  114. 530E Filename 'file2'
  115. 5313 Extra ID #0001 5455 'UT: Extended Timestamp'
  116. 5315 Length 0005
  117. 5317 Flags '03 mod access'
  118. 5318 Mod Time 5C3E27C4 'Tue Jan 15 13:34:44 2019'
  119. 531C Extra ID #0002 7875 'ux: Unix Extra Type 3'
  120. 531E Length 000B
  121. 5320 Version 01
  122. 5321 UID Size 04
  123. 5322 UID 000003E8
  124. 5326 GID Size 04
  125. 5327 GID 000003E8
  126.  
  127. 532B END CENTRAL HEADER 06054B50
  128. 532F Number of this disk 0000
  129. 5331 Central Dir Disk no 0000
  130. 5333 Entries in this disk 0002
  131. 5335 Total Entries 0002
  132. 5337 Size of Central Dir 00000096
  133. 533B Offset to Central Dir 00005295
  134. 533F Comment Length 0000
  135. Done

zipgrep命令

zipgrep 命令將使用 grep 類的功能來找到壓縮文件中的特定內容。如果文件已加密,則需要為要檢查的每個文件輸入為加密所提供的密碼。如果只想檢查歸檔文件中單個文件的內容,請將其名稱添加到 zipgrep 命令的末尾,如下所示。

  1. $ zipgrep hazard twofiles.zip file1
  2. [twofiles.zip] file1 password:
  3. Certain pesticides should be banned since they are hazardous to the environment.

zipinfo 命令

zipinfo 命令提供有關壓縮文件內容的信息,無論是否加密。這包括文件名、大小、日期和權限。

  1. $ zipinfo twofiles.zip
  2. Archive: twofiles.zip
  3. Zip file size: 21313 bytes, number of entries: 2
  4. -rw-rw-r-- 3.0 unx 58021 Tx defN 19-Jan-15 13:25 file1
  5. -rw-rw-r-- 3.0 unx 58933 Tx defN 19-Jan-15 13:34 file2
  6. 2 files, 116954 bytes uncompressed, 20991 bytes compressed: 82.1%

zipnote 命令

zipnote 命令可用于從 zip 歸檔中提取注釋或添加注釋。要顯示注釋,只需在命令前面加上歸檔名稱即可。如果之前未添加任何注釋,你將看到類似以下內容:

  1. $ zipnote twofiles.zip
  2. @ file1
  3. @ (comment above this line)
  4. @ file2
  5. @ (comment above this line)
  6. @ (zip file comment below this line)

如果要添加注釋,請先將 zipnote 命令的輸出寫入到文件:

  1. $ zipnote twofiles.zip > comments

接下來,編輯你剛剛創(chuàng)建的文件,將注釋插入到 (comment above this line) 行上方。然后使用像這樣的 zipnote 命令添加注釋:

  1. $ zipnote -w twofiles.zip < comments

zipsplit 命令

當歸檔文件太大時,可以使用 zipsplit 命令將一個 zip 歸檔文件分解為多個 zip 歸檔文件,這樣你就可以將其中某一個文件放到小型 U 盤中。最簡單的方法似乎是為每個部分的壓縮文件指定最大大小,此大小必須足夠大以容納最大的所包含的文件。

  1. $ zipsplit -n 12000 twofiles.zip
  2. 2 zip files will be made (100% efficiency)
  3. creating: twofile1.zip
  4. creating: twofile2.zip
  5. $ ls twofile*.zip
  6. -rw-rw-r-- 1 shs shs 10697 Jan 15 14:52 twofile1.zip
  7. -rw-rw-r-- 1 shs shs 10702 Jan 15 14:52 twofile2.zip
  8. -rw-rw-r-- 1 shs shs 21377 Jan 15 14:27 twofiles.zip

請注意,提取的文件是如何依次命名為 twofile1twofile2 的。

總結

zip 命令及其一些壓縮工具變體,對如何生成和使用壓縮文件歸檔提供了很多控制。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2012-05-10 09:43:28

2020-05-07 09:18:57

Linux壓縮文件命令

2019-04-26 09:50:21

Linux壓縮文件文件夾

2009-12-16 16:11:14

Linux壓縮文件

2024-01-04 12:47:00

Linux命令工具

2020-11-08 14:37:46

Python壓縮文件代碼

2009-12-25 17:55:05

Linux tar

2009-10-20 15:39:20

Linux壓縮

2018-09-14 16:18:26

Linux壓縮文件應用程序

2013-07-18 14:16:14

ZipArchive壓iOS開發(fā)

2019-10-24 08:52:23

Linux壓縮文件歸檔

2021-09-10 10:35:25

Linuxstat命令文件系統(tǒng)

2022-07-04 08:03:08

Go壓縮打包

2009-04-27 13:46:30

網(wǎng)絡管理拷貝故障

2009-12-03 14:10:06

PHP壓縮文件夾

2019-12-13 10:42:03

LinuxSCP命令

2011-04-08 09:42:19

Access數(shù)據(jù)庫壓縮文件

2020-07-06 07:37:58

Linux虛擬

2021-12-12 09:19:16

find命令Linux

2021-08-10 11:09:06

Linux壓縮神器命令
點贊
收藏

51CTO技術棧公眾號