使用Linux命令行压缩文件有多种不同的方法。本文包含一些实际示例,说明如何使用zip命令压缩和组织文件系统中的文件。
当您需要节省空间并将大文件从一个地方复制到另一个地方时,将使用压缩文件。
如果您有10个大小均为100 MB的文件,并且需要将它们传输到ftp站点,则传输可能需要相当长的时间,具体取决于您的处理器速度。
如果将所有10个文件压缩为单个压缩存档,并且压缩将文件大小减小到每个文件50MB,那么您只需要传输一半的数据。
如何创建文件夹中所有文件的存档
想象一下,你有一个包含以下MP3文件的歌曲文件夹:
| Night Prowler.mp3 |
| 爱饿了man.mp3 |
| Get It Hot.mp3 |
| 走遍你.mp3 |
| 高速公路到地狱.mp3 |
| 如果你想要血,你就得到了它.mp3 |
| 在flames.mp3中显示 |
| 触摸太多.mp3 |
| 在bush.mp3周围跳动 |
| 女孩得到了Rhythm.mp3 |
这个简单的Linux命令说明了如何创建当前文件夹中名为ACDC_Highway_to_Hell.zip的所有文件的存档:
zip ACDC_Highway_to_Hell *
文本向上滚动屏幕,显示正在添加的文件。
如何在存档中包含隐藏文件
上一个命令适用于归档文件夹中的所有文件,但它只包含未隐藏的文件。
这并不总是这么简单。想象一下,您想要压缩您的主文件夹,以便您可以将其备份到USB驱动器或外部硬盘驱动器。您的主文件夹包含隐藏文件。
要压缩文件夹中的所有文件(包括隐藏文件),请运行以下命令:
拉链回家*。*
这将创建一个名为home.zip的文件,其中包含主文件夹中的所有文件。
(您必须位于主文件夹中才能使用此功能)。此命令的问题是它只包含主文件夹中的文件而不包括文件夹,这将我们带到下一个示例。
如何存档Zip文件中的所有文件和子文件夹
要包括存档中的所有文件和子文件夹,请运行以下命令:
zip -r home。
如何将新文件添加到现有的压缩存档
如果要将新文件添加到现有存档或更新存档中的文件,请在运行zip命令时对存档文件使用相同的名称。
例如,假设您有一个包含四个专辑的音乐文件夹,并创建一个名为music.zip的存档作为备份。现在想象一周后你下载两张新专辑。要将新相册添加到zip文件,只需运行与上周相同的zip命令即可。
要创建原始音乐存档,请运行以下代码:
zip -r音乐/ home / yourname / music /
要将新文件添加到存档,请再次运行相同的命令。
如果zip文件中包含文件列表,并且磁盘上的某个文件已更改,则修改后的文件将在zip文件中更新。
如何更新压缩存档中的现有文件
如果您的zip文件每次都应包含相同的文件名,并且您希望使用对这些文件所做的任何更改来更新该文件,那么 -F 开关可以帮助你做到这一点
例如,假设您有一个带有以下文件的压缩文件:
| /家庭/提供yourname /文件/文件1 |
| /家庭/提供yourname /文件/文件2 |
| /家庭/提供yourname /文件/文件3 |
| /家庭/提供yourname /文件/文件4 |
| /家庭/提供yourname /文件/ file5 |
| /家庭/提供yourname /文件/ file6 |
现在想象一下,在本周,您添加了两个新文件并修改了两个文件,以便文件夹/ home / yourname / documents现在如下所示:
| /家庭/提供yourname /文件/文件1 |
| /家庭/提供yourname /文件/文件2 |
| /家庭/提供yourname /文件/文件3 |
| / home / yourname / documents / file4(更新) |
| / home / yourname / documents / file5(已更新) |
| /家庭/提供yourname /文件/ file6 |
| /家庭/提供yourname /文件/ file7 |
| /家庭/提供yourname /文件/ file8 |
当您运行以下命令时,zip文件将包含更新的文件(file4和file5),但不会添加file7和file8。
zip zipfilename -f -r / home / yourname / documents
如何从压缩档案中删除文件
因此,您创建了一个包含数百个文件的大量zip文件,现在意识到zip文件中有四个或五个文件,您不需要这些文件。无需再次压缩所有这些文件,您只需运行zip命令即可 -d 切换如下:
zip zipfilename -d 存档中的文件名
例如,如果存档中的文件名为home / documents / test.txt,则使用以下命令将其删除:
zip zipfilename -d home / documents / test.txt
如何将文件从一个Zip文件复制到另一个Zip文件
如果您有一个zip文件中的文件,并且您想要将它们复制到另一个zip文件而不先解压缩并重新解压缩,请使用 -u 开关。
假设您有一个名为“variousmusic.zip”的zip文件,其中包含来自不同艺术家的音乐,其中一个是AC / DC。您可以使用以下命令将各种音乐.zip文件中的AC / DC歌曲复制到ACDC.zip文件中:
zip variousmusmus.zip -U --out ACDC.zip“Back_In_Black.mp3”
上面的命令将文件“Back_In_Black.mp3”从variousmusic.zip复制到ACDC.zip。如果您要复制的zip文件不存在,则会创建该文件。
如何使用模式匹配和管道创建档案
下一个开关非常有用,因为它允许您使用其他命令的输出将文件插入到zip文件中。假设您要创建一个名为lovesongs.zip的文件,其中包含标题中包含单词love的每首歌曲。
要在标题中找到带有爱的文件,您可以使用以下命令:
find / home / yourname / Music -name * love *
上面的命令不是100%完美,因为它也会选择像“三叶草”这样的词,但你明白了。要将上述命令中的所有返回结果添加到名为lovesongs.zip的zip文件中,请运行以下命令:
find / home / yourname / Music -name * love * | zip lovesongs.zip - @
如何创建拆分存档
如果要备份计算机,但可用于备份的唯一媒体是一组空白DVD,则可以选择。您可以保留压缩文件,直到zip文件为4.8千兆字节并刻录DVD,或者您可以创建一个称为拆分存档的东西,它会在达到您指定的限制后继续在集合中创建新存档。
例如:
zip mymusic.zip -r / home / myfolder / Music -s 670m
如何自定义压缩过程的进度报告
有多种方法可以自定义在压缩过程中出现的输出。
可用的开关如下:
- -db =显示已压缩的字节数以及剩余的字节数
- -dc =显示压缩文件的数量以及剩余的文件数量
- -dd =显示已压缩的每10MB文件的点数
- -ds =设置点出现的频率
- -du =显示每个文件的未压缩大小
例如:
zip myzipfilename.zip -dc -r / home / music
如何修复Zip文件
如果您的zip存档已损坏,您可以尝试使用它来修复它 -F 命令,如果失败,那么 FF 命令。
如果您使用了创建拆分存档,这将非常有用 -s 切换,你丢失了一个存档文件。
例如,首先尝试这个:
zip -F myfilename.zip --out myfixedfilename.zip
然后
zip -FF myfilename.zip --out myfixedfilename.zip
如何加密档案
如果您要将敏感信息存储在zip文件中,请使用 -e 命令加密它。系统会要求您输入密码并重复密码。
例如:
zip myfilename.zip -r / home / wikileaks -e
如何显示将被压缩的内容
如果您知道要创建大型存档,请确保将正确的文件添加到zip文件中。您可以通过指定来查看zip命令的预期结果 -SF 开关。
例如:
zip myfilename.zip -r / home / music / -sf
如何测试档案
将文件备份到zip文件后,通过删除原始文件来节省磁盘空间很有诱惑力。在您这样做之前,测试zip文件是否正常工作是个好主意。
你可以使用 -T 切换到测试zip文件是否有效。
例如:
zip myfilename.zip -T
存档无效时此命令的输出可能如下所示:
- zip警告:缺少结束签名 - 可能不是zip文件
请记住,您可以尝试-F命令来修复损坏的zip文件。
值得注意的是-T可以产生误报,因为它表示zip文件已损坏,即使打开它,您也可以提取所有文件。
如何排除文件
有时您想要从zip文件中排除某些文件。例如,如果您从手机或数码相机复制文件,则会混合使用视频和图像。您可能希望将照片压缩为photos.zip和视频到videos.zip。
这是在创建photos.zip时排除视频的一种方法
zip photos.zip -r / home / photos / -x * .mp4
如何指定压缩级别
将文件压缩为zip文件时,系统会决定是压缩文件还是仅存储文件。例如,MP3文件已经被压缩,因此进一步压缩它们几乎没有意义;它们通常存储在zip文件中。
但是,您可以指定0到9之间的压缩级别以进一步压缩文件。这需要更长的时间,但它可以节省大量空间。
zip myfiles.zip -r / home -5




