我有目录"文件"使用这些文件:
FILE1.TXT。
FILE2.TXT
的index.html
的index.php
script.pl
我想创建名为files.zip的zip存档,只使用终端的.txt扩展名文件。我该怎么做?
答案 0 :(得分:1)
在基本级别,如果您与文件所在的目录相同,则可以执行以下操作:
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
答案 1 :(得分:0)
现有答案的附加组件,如果您要添加到现有的 zip 存档,要小心,如果您在 zip 存档 和内径。来自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 是新的。
答案 2 :(得分:-1)
尝试:
zip only-txt.zip `find . -name "*.txt"`
这将创建一个名为only-txt.zip
的zip文件,其中包含运行该命令的目录中的所有*.txt
文件,请注意,这将在dir的所有子文件夹中递归搜索* .txt文件