我有大约 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。
您正在尝试创建一个与该文件同名的目录。这是行不通的:不能有两个同名的目录条目。
解决此问题的一种方法是从文件中basename删除.7z扩展名并创建不带后缀的目录.7z。
喜欢:
for archive in *.7z; do 7z x -o"`basename \"$archive\" .7z`" "$archive"; done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10770 次 |
| 最近记录: |