【发布时间】:2017-03-23 12:34:24
【问题描述】:
我有多个 zip 文件,每个文件都包含同名的文件,但这些 zip 文件具有唯一的名称。我想要做的是将多个 zip 中的所有同名文件放在一个目录中,但通过将 zip 文件夹名称添加到文件名来保留它们来自哪个 zip。此外,zip 不一定具有相同的文件夹结构 - 具有相同名称的文件可以位于 zip 内的任何文件夹中(但我不需要保留中间文件夹名称)。
比如说我有
-> zip1 - folder1 - file1
- file2
-> zip2 - file1
- file2
那么我想要的是在一个目录中获取以下文件以及连接名称:
- zip1file1
- zip1file2
- zip2file1
- zip2file2
'folder1' 没有 可以忽略,但我真的不在乎,zip 文件夹的名称中包含重要信息。
到目前为止,我已经完成了
for zip in *.zip; do unzip "$zip" -d "${zip%.zip}"; done
将所有 zip 解压缩到它们自己的唯一文件夹中,并使用我想要保留的名称。然后我可以使用“查找”从包含所有解压缩文件的目录中找到所有相关文件的列表:
find . -name 'file1.m'
但我不知道如何将这个“查找”的结果移动到新目录中,并将它们所在文件夹的名称添加到他们的文件名中。
【问题讨论】:
标签: unix