У меня есть множество папок с изображениями (много!), И некоторые из эскизов имеют префикс 'tn', а другие нет, поэтому, чтобы иметь возможность написать галерею для всех, я попытка удалить 'tn' из начала файлов, которые имеют его рекурсивно во всем каталоге.
Итак, неправильный эскиз будет иметь файлы:
tngal001-001.jpg
tngal001-002.jpg
tngal001-003.jpg
et c ...
и мне нужно, чтобы они были:
gal001-001.jpg
gal001-002.jpg
gal001-003.jpg
или еще лучше ... если бы я мог снять весь tngal001-
, это было бы потрясающе, Итак, в каталоге gallery
у меня есть:
gal001/thumbnails/tngal001-001.jpg
gal001/thumbnails/tngal001-002.jpg
gal001/thumbnails/tngal001-003.jpg
etc...
gal002/thumbnails/tngal002-001.jpg
gal002/thumbnails/tngal002-002.jpg
gal002/thumbnails/tngal002-003.jpg
etc...
gal003/thumbnails/tngal003-001.jpg
gal003/thumbnails/tngal003-002.jpg
gal003/thumbnails/tngal003-003.jpg
etc...
, и я бы предпочел:
gal001/thumbnails/001.jpg
gal001/thumbnails/002.jpg
gal001/thumbnails/003.jpg
etc...
gal002/thumbnails/001.jpg
gal002/thumbnails/002.jpg
gal002/thumbnails/003.jpg
etc...
gal003/thumbnails/001.jpg
gal003/thumbnails/002.jpg
gal003/thumbnails/003.jpg
etc...
Я пробовал find . -type f -name "tn*" -exec sh -c 'for f; do mv "$f" "{f#tn}"; done' find sh {} +
и find . -type f -exec sh -c 'for file in tn*; do mv "$file" "${file#tn}"; done' findsh {} +
но я не совсем понимаю. Я просто хочу понять, как рекурсивно удалять буквы / переименовывать, так как я просто разбираюсь в этом материале. Все остальные вопросы, которые я нашел, похоже, касаются удаления символов из имен файлов, а все символы ascii и экранирующие пробелы et c сбивают меня с толку. Я был бы признателен, если бы кто-нибудь мог объяснить это просто (i sh) engli sh. Я не дурак, но я новичок от ie до linux! Я понимаю, что все это логично, когда я понимаю, что происходит.
Заранее спасибо, Кирсти