我提取了 .odt(Open Office)文件并对其进行了一些操作。然后当我想将文件压缩回来时,出现了问题。
例如,如果我进入包含解压后的 odt 文件的目录并执行以下操作:
cd /dir/with/uziped/odt
zip -r ../test.odt .
一切正常。我获得了一个有效的 Open Office 文件,并且可以使用它。
但是当我尝试从非根 odt 文件夹压缩我有损坏的 odt 文件时,执行以下命令:
zip -r test.odt /dir/with/uziped/odt
因此,它不起作用。
“/dir/with/uziped/odt” 包含几个文件夹和 .xml 文件
更新:
主要的问题是,如果我尝试使用归档程序,而不是从根目录获取路径中的所有目录,请使用以下命令:
7z a -tzip tt.odt temp/*
输出将是:
Compressing temp/Configurations2/accelerator/current.xml
Compressing temp/META-INF/manifest.xml
Compressing temp/Thumbnails/thumbnail.png
Compressing temp/content.xml
Compressing temp/manifest.rdf
Compressing temp/meta.xml
Compressing temp/mimetype
Compressing temp/settings.xml
Compressing temp/styles.xml
但我不需要压缩临时目录。我只需要将此目录中的所有文件添加到新存档中,如下所示:
Compressing Configurations2/accelerator/current.xml
Compressing META-INF/manifest.xml
Compressing Thumbnails/thumbnail.png
Compressing content.xml
Compressing manifest.rdf
Compressing meta.xml
Compressing mimetype
Compressing settings.xml
Compressing styles.xml
答案1
zip 的流式输入和输出
zip 还将接受单个破折号-
作为 zip 文件名,在这种情况下它会将 zip 文件写入标准输出,从而允许将输出通过管道传输到另一个程序。
例如,dd
程序可以将标准输出写入另一个位置的文件。以下示例dd
将标准输出写入位于用户 Denis 桌面上的名为 test.zip 的新文件(zip 存档)。
cd /dir/with/uzipped/odt
zip -r - . | dd of=/home/Denis/Desktop/test.zip
of
后面输入dd
的代表输出文件。 这.
单破折号后面的表示当前目录。
将 zip 文件转换为 odt
由于 .odt 文件的结构类似于 .zip 文件,因此您可以通过将文件扩展名重命名为 .zip,然后从 zip 存档中提取文件来查看 .odt 文件的内容。如果您保留了原始 .odt 文件的目录结构,则可以在对 .zip 文件进行更改后,通过将文件的 .zip 扩展名重命名为 .odt,将 .zip 文件转换回 .odt 文件。