Unix 将文件复制到目录并将路径名添加到文件名

Unix 将文件复制到目录并将路径名添加到文件名,unix,Unix,我有多个zip文件,每个文件都包含同名文件,但zip文件有唯一的名称。我想做的是将多个zip中具有相同名称的所有文件放在一个目录中,但通过将zip文件夹名称添加到文件名来保留它们来自哪个zip。此外,ZIP中不一定有相同的文件夹结构-具有相同名称的文件可以位于ZIP中的任何文件夹中(但我不需要保留中间文件夹名称) 例如,假设我有 -> zip1 - folder1 - file1 - file2 -> zip2 - file1 -

我有多个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
将所有拉链解压到它们自己独特的文件夹中,其中包含我要保留的名称。然后,我可以使用“查找”从包含所有解压缩文件的目录中找到所有相关文件的列表:

find . -name 'file1.m'
但我不知道如何将此“查找”的结果移动到新目录中,并将其所在文件夹的名称添加到其文件名中。

我将尽最大努力

myfiles是移动文件的目录。 这不是一个班轮,但应该工作

DEST="./myfiles"
mkdir -p $DEST
find zip* -type f | while read f
do
  mv $f $DEST/${f//'/'}
done
将做:

mv zip1/folder1/file2 ./myfiles/zip1folder1file2
mv zip1/folder1/file1 ./myfiles/zip1folder1file1
mv zip2/file2 ./myfiles/zip2file2
mv zip2/file1 ./myfiles/zip2file1

谢谢你的回答,但是运行这个之后myfiles文件夹仍然是空的,我得到了
用法:mv[-f |-I |-n][v]源目标mv[-f |-I |-n][v]源。。。目录
反复警告