如何在 Linux 中将多个 7zip 存档解压缩到同名文件夹中?

2 linux extract 7-zip

我有大约 300 个 7zip 档案,每个档案中都有几个文件,并且内部没有目录结构。

我需要将所有这些存档提取到与相应存档匹配的文件夹中。

例子:

foo.7z
bar.7z

foo.7z提取到的内容提取到/foo/
的内容bar.7z/bar/


我尝试过这个脚本:

find . -name "*.7z" -type f| xargs -I {} 7z x -o{} {}

但它的结果是:

can not open output file ./foo.7z/file.bin
Skipping    file.bin
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我正在使用 Ubuntu Linux。

Voj*_*ech 5

您正在尝试创建一个与该文件同名的目录。这是行不通的:不能有两个同名的目录条目。

解决此问题的一种方法是从文件中basename删除.7z扩展名并创建不带后缀的目录.7z

喜欢:

for archive in *.7z; do 7z x -o"`basename \"$archive\" .7z`" "$archive"; done
Run Code Online (Sandbox Code Playgroud)