Как переименовать и найти изображения, добавляя название содержащей папки

find -type f -name '*.jpg' -exec bash -c 'ext="${0##*.}";path="$(dirname "$0")";name="$(basename "$0"|sed "s/.jpg//")";folder="$(dirname "$0"|tr / \\n |tail -1)";new="${path}/${name}_${folder}.${ext}"; mv "$0" "${new}"' {} \;


Команда find ищет файлы в указанной папке () с расширением ‘.jpg’ и для каждого найденного файла выполняет следующее:

1. Получает расширение файла (ext).
2. Извлекает путь к файлу (path).
3. Извлекает имя файла без расширения (name).
4. Извлекает имя последней папки в пути (folder).
5. Создает новое имя файла, добавляя имя последней папки и расширение.
6. Переименовывает файл, используя новое имя.

Эта команда полезна для переименования изображений, добавляя имя содержащей папки к их именам. Альтернативой может быть использование других языков программирования или скриптов, но данная команда предоставляет компактное решение в командной строке.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *