[英]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.