Очевидно, что я опоздал с этим ответом, но надеюсь, что некоторые другие могут найти его полезным.
for i in $(find . -type f -iname "folder.jpg" -printf "%P\n") ; do t=$(echo $i | sed 's|/|\.|g'); cp $i TARGETDIR/$t ; done
-printf "%P\n"
предназначен для удаления ведущего ./
из find
вывода.
Эхо найти
результат ($i
) в sed
и внести изменения, в этом случае sed заменяет /
на .
и присвойте значение всего этого t
. Затем просто скопируйте файл, найденный с помощью find
, $i
, в данном случае, в TARGETDIR с новым именем $t
.
Найдено: ./artist/artist.year.album/folder.jpg
Выход: TARGETDIR/artist.artist.year.album.folder.jpg