在保留文件结构的情况下解压到当前目录

31

我现在在一个文件夹中,有一个包含文件和文件夹的压缩包。我需要将该文件解压到当前目录中,但要保留原有的文件结构。

使用 unzip myfile.zip 命令会在当前目录下创建一个名为 "myfile" 的文件夹,不符合我的需求。

使用 unzip -j myfile.zip 命令会破坏所有的文件结构,也不符合我的需求。

3个回答

35

unzip myfile.zip 命令会提取zip文件中的文件,并保留zip文件中的路径信息。因此,如果你在zip文件中看到一个子目录myfile,那么它就是压缩文件相对路径的一部分。可以通过列出zip内容来进行检查。

unzip -l myfile.zip
所以您可以从上面的目录解压文件,或者从目标目录使用 -d 选项进行解压,其中 -d 是上面的目录。
cd myfile
unzip myfile.zip -d ..

2
不要在压缩时选择文件夹。 例如 myfile / abc.txt 和 myfile / efg.txt 所以,在压缩时选择文件(abc.txt,efg.txt)并进行压缩,不要选择 myfile 文件夹进行压缩。 这样,当您解压缩文件时,每个文件或文件夹的父目录将是您解压缩的目录。

1
当创建zip文件时,myfile目录已被压缩到zip文件中,查看解压选项,没有不添加额外步骤就能实现的方法。
如果整个过程在您的控制下,您应该考虑创建zip文件时不包括父目录,或者使用其他替代方案,如tar(用于创建和提取),它允许您更精确地从存储库中提取内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接