我有很多包含很多图片的文件夹,我想将所有图片放在一个目录下,但文件夹包含具有相同名称的图片,例如:
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/folder
和subdir2/folder
。