如何合并多个文件夹并保持其内容有序?

如何合并多个文件夹并保持其内容有序?

我有很多包含很多图片的文件夹,我想将所有图片放在一个目录下,但文件夹包含具有相同名称的图片,例如:

    folder1:
        -image1.jpg
        -image2.jpg
        -image3.jpg

    folder2:
        -image1.jpg
        -image2.jpg
        -image3.jpg

如果有任何方法可以将所有图像放在一个目录下并保持所有文件排序。如以下示例所示:

   directory:
      -folder1_image1.jpg
      -folder1_image2.jpg
      -folder1_image3.jpg
      -folder2_image1.jpg
      -folder2_image2.jpg
      -folder2_image3.jpg

我希望我说清楚了。谢谢。

答案1

使用find -exec

mkdir directory;
find folder* -type f -name "*.jpg" \
  -exec sh -c 'mv "$1" directory/$(dirname "$1")_$(basename "$1")' find-sh {} \;

前:

.
├── directory
├── folder1
│   ├── image1
│   ├── image2
│   └── image3
└── folder2
    ├── image1
    ├── image2
    └── image3

后:

.
├── directory
│   ├── folder1_image1.jpg
│   ├── folder1_image2.jpg
│   ├── folder1_image3.jpg
│   ├── folder2_image1.jpg
│   ├── folder2_image2.jpg
│   └── folder2_image3.jpg
├── folder1
└── folder2

这具有明显的局限性,即它不适用于例如subdir1/foldersubdir2/folder

相关内容