我不知道我是否说得通,但这大致是我正在处理的事情,以防万一我会包含一些文件夹名称中包含 .jpg 的内容:
Photos$ tree
.
├── 1
│ ├── 1.jpg
│ │ └── X
│ │ └── Y
│ │ ├── A
│ │ │ └── image.jpg
│ │ └── B
│ │ └── image.jpg
│ └──2.jpg
│ └── X
│ └── Y
│ ├── A
│ │ └── image.jpg
│ └── B
│ └── image.jpg
│
└── 2
├── 1.jpg
│ └── X
│ └── Y
│ ├── A
│ │ └── image.jpg
│ └── B
│ └── image.jpg
├── 2.jpg
│ └── X
│ └── Y
│ ├── A
│ │ └── image.jpg
│ ├── B
│ │ └── image.jpg
理想情况下,通过目录名称,我希望它能够识别正确的顺序并相应地重命名图像1.jpg
......8.jpg
如果太复杂,则用其路径重命名它们:
1_1.jpg_X_Y_A_image.jpg
2_2.jpg_X_Y_B_image.jpg
- ETC。
...也许有一种方法可以一次性提取所有实际的 jpg。
我试过(这个答案](使用文件夹名称重命名文件并将其移动到一个大文件夹),我猜我应该让它更好地适应我有多少个子文件夹,但我不知道该怎么做。
这是我尝试适应目录的一种方法:
user:~/home/test$ mkdir folder
user:~/home/test$ for file in Photos*/*/*.jpg/X*/Y*/*/*.jpg; do
> mv "$file" "folder/${file/\//_}"
> done
结果总是
mv: cannot move 'Photos/1/1.jpg/X/Y/A/image.jpg' to 'folder/Photos/1/1.jpg/X/Y/A/image.jpg': No such file or directory
mv: cannot move 'Photos/2/2.jpg/X/Y/B/image.jpg' to 'folder/Photos/2/2.jpg/X/Y/B/image.jpg': No such file or directory
我做错了什么?有超过 1000 张图片,所以我无法手动完成!