【发布时间】:2022-11-28 18:19:01
【问题描述】:
我一直在尝试编写一个小脚本来对我的 Linux 服务器中的图像文件进行排序。 我尝试了在 StackExchange 中找到的多种解决方案,但它始终无法满足我的要求。
https://superuser.com/questions/999922/move-all-files-from-multiple-subfolders-into-the-parent-folder https://superuser.com/questions/1146686/move-all-files-within-subfolders-to-parent-folder
我在解释:
我有一堆装满图像的文件夹(各种扩展名)。 大多数情况下,图像已经在父文件夹中。 但有时图像隐藏在一个或多个子文件夹中,并且文件名经常重复,例如不同照片集中的 1.jpg、2.jpg。 有时是一团糟。
基本上我想将所有图像文件带到父文件夹,无论结构、混乱或重复文件名如何。
我得到的最糟糕的情况是:
|parent
| |photoset1
| | 1.jpg
| | 2.jpg
| | 3.jpg
| | ...
| |photoset2
| | 1.jpg
| | 2.jpg
| | 3.jpg
| | ...
| |photoset3
| | 1.jpg
| | 2.jpg
| | 3.jpg
| | ...
我希望得到这样的东西:
|parent
| |1_a.jpg
| |2_a.jpg
| |3_a.jpg
| |...
| |1_b.jpg
| |2_b.jpg
| |3_b.jpg
| |...
| |1_c.jpg
| |2_c.jpg
| |3_c.jpg
| |...
请注意,文件名只是一个示例。可以是任何东西。
现在,我的主要问题是重复的文件名,有时会使所有内容无法正确合并到父文件夹中。
谢谢!
【问题讨论】:
-
您可以为此使用
rename,例如stackoverflow.com/a/62720198/2836621 -
嗨,马克,感谢您的回复。实际上,我已经在我的一些 bash 脚本中使用了重命名。但在那种情况下它不起作用。如果你再读一遍我的帖子,它比批量重命名文件要复杂得多。
-
您基本上是将目录名称
photoset1或photoset2或其他名称折叠成a、b或其他名称。因此,如果您将目录名称附加到列表(没有重复项),则可以在列表中使用索引而不是a或b。
标签: bash file directory subdirectory mv