如何在不使用存档名称7zip,命令行创建子文件夹的情况下直接将存档解压缩到目标文件夹?

问题描述

我正在使用7zip命令行界面提取档案,如下所示:

---> df
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  2
spider         8          0                  1
fish           0          0                  8

---> df1
        num_legs  num_wings  num_specimen_seen
dog            4          0                  5
spider         8          0                  9

---> output
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  5
spider         8          0                  9
fish           0          0                  8

如果我的zipfile名为7za.exe x -y {path_to_zipfile} -o{path_to_target_folder} ,那么我将在目标文件夹中获得以下文件结构:

my_archive.7z

但是,我不需要子文件? target_folder └─ ? my_archive ├─ ? foo.png ├─ ? bar │ ├─ ? baz.txt │ └─ ? qux.txt ... 。我正在寻找适用于7zip命令的标志,以便所有内容都直接提取到目标文件夹中,而无需创建? my_archive文件夹。


注释

  • 我不能用? my_archive替换x,因为文件结构不应该丢失(e标志将所有文件推送到顶层)。

  • 我正在Windows 10计算机上工作,但该解决方案也必须在Linux上工作。

  • 我正在使用以下版本:e

  • 一些背景信息:我正在从Python程序中调用7zip,如下所示:

    7-Zip (a) 19.00 (x64)

    我知道在解压缩完成后(可以移动/重命名目录等),我可以在Python中做各种事情,但这是针对计划B的。首先,我想检查一下是否有一个优雅的解决方案。

  • 我想坚持使用7zip,原因可能会导致我们在这里过分。

解决方法

您可以在提取存档之前重命名顶级文件夹以匹配目标文件夹。

7za rn {path_to_zipfile} my_archive target_folder

这将永久更改存档。如果您不想这样做,请先复印一份。