使用自动重命名提取多个 7z 文件

Xod*_*rap 7 bash 7zip

我有一堆 7z 文件,其中一些包含具有相同名称的文件。因此,我想做自动重命名。

我可以做类似的事情

find ./all -exec 7z x -pabc123 -oall/xml {} \;
Run Code Online (Sandbox Code Playgroud)

提取所有文件,但这会询问我是否要自动重命名每个存档。有没有办法让它只问我一次?或者更好的是,将其作为命令行选项传递?

(请注意,我必须使用七个 zip,因为它有密码。)

Dav*_*ter 8

p7zip 手册

-ao (覆盖模式)开关

指定提取期间的覆盖模式,以覆盖磁盘上已存在的文件。

句法

-ao[a | s | t | u ]
Run Code Online (Sandbox Code Playgroud)

开关说明

-aoa 在没有提示的情况下覆盖所有现有文件。
-aos 跳过现有文件的提取。
-aou aAuto 重命名提取文件(例如,name.txt将重命名为name_1.txt)。
-aot 自动重命名现有文件(例如,name.txt将重命名为name_1.txt)。

例子

7z x test.zip -aoa
Run Code Online (Sandbox Code Playgroud)

test.zip存档中提取所有文件并在没有任何提示的情况下覆盖现有文件。

可与此开关一起使用的命令

e(Extract) , x(用完整路径提取)

也可以看看

开关:(-y假设所有查询都是 Yes)

看起来命令上的-aou-aot开关7z会做你想做的,例如:

find all -exec 7z x -aou [OPTIONS...] {} \;
Run Code Online (Sandbox Code Playgroud)