繁体   English   中英

如何使用终端在 Linux 中使用只有 .txt 扩展名的文件创建 zip 存档

[英]How to create zip archive with files with only .txt extension in Linux using terminal

我有包含这些文件的目录“文档”:

文件1.txt。

文件2.txt

索引.html

索引.php

脚本文件

我想使用终端创建名为 files.zip 的 zip 存档,只有 .txt 扩展文件。 我该怎么做?

在基本级别,如果您位于文件所在的同一目录中,则可以执行以下操作:

zip files.zip *txt

如果你想用.txt扩展名压缩文件,通过给出绝对路径,如果它们在Documents目录中,这将在你所在的当前目录中创建files.zip

zip files.zip /the/path/to/Documents/*txt

如果您还希望此压缩文件位于Documents文件夹中,则应将其指定为:

zip /the/path/to/Documents/files.zip /the/path/to/Documents/*txt

现有答案的附加组件,如果您要添加到现有的 zip 存档,请注意zip存档inpath中的同名条目。 来自man zip

命令格式。 基本命令格式为

 zip options archive inpath inpath ...

其中 archive 是一个新的或现有的 zip 存档,inpath 是一个目录或文件路径,可选地包括通配符。 当给定现有zip 存档的名称时,zip将替换zip 存档中相同命名的条目(匹配存档中存储的相对名称)或为新名称添加条目。 例如,如果 foo.zip 存在并包含 foo/file1 和 foo/file2,并且目录 foo 包含文件 foo/file1 和 foo/file3,则:

 zip -r foo.zip foo

或更简洁地

 zip -r foo foo

将替换 foo.zip 中的 foo/file1 并将 foo/file3 添加到 foo.zip。 此后,foo.zip 包含 foo/file1、foo/file2 和 foo/file3,其中 foo/file2 与之前相同。

所以如果在 zip 命令执行之前 foo.zip 有:

 foo/file1 foo/file2

和目录 foo 有:

 file1 file3

然后 foo.zip 将具有:

 foo/file1 foo/file2 foo/file3

其中 foo/file1 被替换,foo/file3 是新的。

试一试:

zip only-txt.zip `find . -name "*.txt"`

这将创建一个名为only-txt.zip的 zip 文件,其中包含您运行命令的目录中的所有*.txt文件,注意这将在目录的所有子文件夹中递归搜索 *.txt 文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM