压缩用法命令变体文件上下移动_压缩用法命令变体文件上传_linux加密打包命令 zip

不仅压缩和解压缩文件外,你还可以使用zip命令执行许多有趣的操作。这是一些其他的zip选项以及它们怎样提供帮助。--SandraHenry-stocker(作者)

为了节约一些c盘空间并将文件打包在一起进行归档,我们中的一些人早已在Unix和Linux系统上压缩文件数六年了。即便这样,并不是所有人都尝试过一些有趣的压缩工具的变体。为此,在本文中,我们将介绍标准的压缩和解压缩以及其他一些有趣的压缩选项。

基本的zip命令

首先,让我们看一下基本的zip命令。它使用了与gzip基本上相同的压缩算法,并且有一些重要的区别。一方面,gzip命令仅用于压缩单个文件linux加密打包命令 ziplinux加密打包命令 zip,而zip既可以压缩文件,也可以将多个文件结合在一起成为归档文件。另外,gzip命令是“就地”压缩。换句话说linux vps,它会只留下一个压缩文件,而原始文件则没有了。这是工作中的gzip示例:

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

而下边是zip。请注意,此命令要求为压缩存档提供名称,其中gzip(执行压缩操作后)仅使用原始文件名并添加.gz扩充名。

压缩用法命令变体文件上传_linux加密打包命令 zip_压缩用法命令变体文件上下移动

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

请注意,原始文件仍坐落原处。

所节约的c盘空间量(即获得的压缩程度)将取决于每位文件的内容。以下示例中的变化很大。

$ zip mybin.zip ~/bin/*
 adding: bin/1 (deflated 26%)
 adding: bin/append (deflated 64%)
 adding: bin/BoD_meeting (deflated 18%)
 adding: bin/cpuhog1 (deflated 14%)
 adding: bin/cpuhog2 (stored 0%)
 adding: bin/ff (deflated 32%)
 adding: bin/file.0 (deflated 1%)
 adding: bin/loop (deflated 14%)
 adding: bin/notes (deflated 23%)
 adding: bin/patterns (stored 0%)
 adding: bin/runme (stored 0%)
 adding: bin/tryme (deflated 13%)
 adding: bin/tt (deflated 6%)

unzip命令

unzip命令将从一个zip文件中恢复内容,但是,如你所料,原先的zip文件还保留在哪里,而类似的gunzip命令将仅保留未压缩的文件。

$ unzip twofiles.zip
Archive: twofiles.zip
 inflating: file1
 inflating: file2
$ ls -l
-rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
-rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
-rw-rw-r-- 1 shs shs 21289 Jan 15 13:35 twofiles.zip

zipcloak命令

zipcloak命令对一个zip文件进行加密,提示你输入两次密码(以确保你不会“胖右手”),之后将该文件原位储存。你可以想到,文件大小与原始文件会有所不同。

$ zipcloak twofiles.zip
Enter password:
Verify password:
encrypting: file1
encrypting: file2
$ ls -l
total 204
-rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
-rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
-rw-rw-r-- 1 shs shs 21313 Jan 15 13:46 twofiles.zip <== slightly larger than
 unencrypted version

请记住,压缩包之外的原始文件仍处于未加密状态。

zipdetails命令

zipdetails命令将向你显示详尽信息:有关压缩文件的详尽信息,可能比你想像的要多得多。虽然我们正在查看一个加密的文件node.js安装linux,zipdetails也会显示文件名以及文件更改日期、用户和组信息、文件宽度数据等。请记住,这都是“元数据”。我们看不到文件的内容。

$ zipdetails twofiles.zip
0000 LOCAL HEADER #1 04034B50
0004 Extract Zip Spec 14 '2.0'
0005 Extract OS 00 'MS-DOS'
0006 General Purpose Flag 0001
 [Bit 0] 1 'Encryption'
 [Bits 1-2] 1 'Maximum Compression'
0008 Compression Method 0008 'Deflated'
000A Last Mod Time 4E2F6B24 'Tue Jan 15 13:25:08 2019'
000E CRC F1B115BD
0012 Compressed Length 00002904
0016 Uncompressed Length 0000E2A5
001A Filename Length 0005
001C Extra Length 001C
001E Filename 'file1'
0023 Extra ID #0001 5455 'UT: Extended Timestamp'
0025 Length 0009
0027 Flags '03 mod access'
0028 Mod Time 5C3E2584 'Tue Jan 15 13:25:08 2019'
002C Access Time 5C3E27BB 'Tue Jan 15 13:34:35 2019'
0030 Extra ID #0002 7875 'ux: Unix Extra Type 3'
0032 Length 000B
0034 Version 01
0035 UID Size 04
0036 UID 000003E8
003A GID Size 04
003B GID 000003E8
003F PAYLOAD
2943 LOCAL HEADER #2 04034B50
2947 Extract Zip Spec 14 '2.0'
2948 Extract OS 00 'MS-DOS'
2949 General Purpose Flag 0001
 [Bit 0] 1 'Encryption'
 [Bits 1-2] 1 'Maximum Compression'
294B Compression Method 0008 'Deflated'
294D Last Mod Time 4E2F6C56 'Tue Jan 15 13:34:44 2019'
2951 CRC EC214569
2955 Compressed Length 00002913
2959 Uncompressed Length 0000E635
295D Filename Length 0005
295F Extra Length 001C
2961 Filename 'file2'
2966 Extra ID #0001 5455 'UT: Extended Timestamp'
2968 Length 0009
296A Flags '03 mod access'
296B Mod Time 5C3E27C4 'Tue Jan 15 13:34:44 2019'
296F Access Time 5C3E27BD 'Tue Jan 15 13:34:37 2019'
2973 Extra ID #0002 7875 'ux: Unix Extra Type 3'
2975 Length 000B
2977 Version 01
2978 UID Size 04
2979 UID 000003E8
297D GID Size 04
297E GID 000003E8
2982 PAYLOAD
5295 CENTRAL HEADER #1 02014B50
5299 Created Zip Spec 1E '3.0'
529A Created OS 03 'Unix'
529B Extract Zip Spec 14 '2.0'
529C Extract OS 00 'MS-DOS'
529D General Purpose Flag 0001
 [Bit 0] 1 'Encryption'
 [Bits 1-2] 1 'Maximum Compression'
529F Compression Method 0008 'Deflated'
52A1 Last Mod Time 4E2F6B24 'Tue Jan 15 13:25:08 2019'
52A5 CRC F1B115BD
52A9 Compressed Length 00002904
52AD Uncompressed Length 0000E2A5
52B1 Filename Length 0005
52B3 Extra Length 0018
52B5 Comment Length 0000
52B7 Disk Start 0000
52B9 Int File Attributes 0001
 [Bit 0] 1 Text Data
52BB Ext File Attributes 81B40000
52BF Local Header Offset 00000000
52C3 Filename 'file1'
52C8 Extra ID #0001 5455 'UT: Extended Timestamp'
52CA Length 0005
52CC Flags '03 mod access'
52CD Mod Time 5C3E2584 'Tue Jan 15 13:25:08 2019'
52D1 Extra ID #0002 7875 'ux: Unix Extra Type 3'
52D3 Length 000B
52D5 Version 01
52D6 UID Size 04
52D7 UID 000003E8
52DB GID Size 04
52DC GID 000003E8
52E0 CENTRAL HEADER #2 02014B50
52E4 Created Zip Spec 1E '3.0'
52E5 Created OS 03 'Unix'
52E6 Extract Zip Spec 14 '2.0'
52E7 Extract OS 00 'MS-DOS'
52E8 General Purpose Flag 0001
 [Bit 0] 1 'Encryption'
 [Bits 1-2] 1 'Maximum Compression'
52EA Compression Method 0008 'Deflated'
52EC Last Mod Time 4E2F6C56 'Tue Jan 15 13:34:44 2019'
52F0 CRC EC214569
52F4 Compressed Length 00002913
52F8 Uncompressed Length 0000E635
52FC Filename Length 0005
52FE Extra Length 0018
5300 Comment Length 0000
5302 Disk Start 0000
5304 Int File Attributes 0001
 [Bit 0] 1 Text Data
5306 Ext File Attributes 81B40000
530A Local Header Offset 00002943
530E Filename 'file2'
5313 Extra ID #0001 5455 'UT: Extended Timestamp'
5315 Length 0005
5317 Flags '03 mod access'
5318 Mod Time 5C3E27C4 'Tue Jan 15 13:34:44 2019'
531C Extra ID #0002 7875 'ux: Unix Extra Type 3'
531E Length 000B
5320 Version 01
5321 UID Size 04
5322 UID 000003E8
5326 GID Size 04
5327 GID 000003E8
532B END CENTRAL HEADER 06054B50
532F Number of this disk 0000
5331 Central Dir Disk no 0000
5333 Entries in this disk 0002
5335 Total Entries 0002
5337 Size of Central Dir 00000096
533B Offset to Central Dir 00005295
533F Comment Length 0000
Done

zipgrep命令

zipgrep命令将使用grep类的功能来找到压缩文件中的特定内容。假如文件已加密,则须要为要检测的每位文件输入为加密所提供的密码。假如只想检测归档文件中单个文件的内容,请将其名称添加到zipgrep命令的末尾,如下所示。

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

zipinfo命令

zipinfo命令提供有关压缩文件内容的信息,无论是否加密。这包括文件名、大小、日期和权限。

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

zipnote命令

linux加密打包命令 zip_压缩用法命令变体文件上下移动_压缩用法命令变体文件上传

zipnote命令可用于从zip归档中提取注释或添加注释。要显示注释,只需在命令后面加上归档名称即可。假如之前未添加任何注释,你将见到类似以下内容:

$ zipnote twofiles.zip
@ file1
@ (comment above this line)
@ file2
@ (comment above this line)
@ (zip file comment below this line)

假如要添加注释,请先将zipnote命令的输出写入到文件:

$ zipnote twofiles.zip > comments

接出来,编辑你刚才创建的文件,将注释插入到(commentabovethisline)行上方。之后使用像这样的zipnote命令添加注释:

$ zipnote -w twofiles.zip < comments

zipsplit命令

压缩用法命令变体文件上下移动_linux加密打包命令 zip_压缩用法命令变体文件上传

当归档文件太大时,可以使用zipsplit命令将一个zip归档文件分解为多个zip归档文件,这样你就可以将其中某一个文件放在大型U盘中。最简单的方式虽然是为每位部份的压缩文件指定最大大小,此大小必须足够大以容纳最大的所包含的文件。

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

请注意,提取的文件是怎样依次命名为twofile1和twofile2的。

总结

zip命令及其一些压缩工具变体,对怎样生成和使用压缩文件归档提供了好多控制。

via:

作者:SandraHenry-Stocker选题:lujun9972译者:wxy校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复