ShadowOfCasper
@ShadowOfCasper
Middle User Interface Web Developer

Как массово переименовать расширение группы файлов, размещённых по папкам?

Есть у меня проект - в нём куча папок, файлы шаблонизатора с расширением pug - перехожу на twig и расширения надо переименовать.

Пробовал:
casper@casperbook:~/projects/umka-lp$ mmv ./\*.pug ./\*.twig
./*.pug -> ./*.twig : no match.
Nothing done.

casper@casperbook:~/projects/umka-lp$ rename '.pug/g' *.twig
syntax error at (user-supplied code), near "."

Ребят помогите, что я делаю не так?
  • Вопрос задан
  • 192 просмотра
Решения вопроса 3
Xuxicheta
@Xuxicheta
инженер
чуваки сверху странные
find . -name "*.pug" -exec rename 's/.pug$/.twig/' {} \;


где find . это для текущей директории.
По всем уровням вложенности. если надо ограничить, то прописываешь -maxdepth 2 например
Ответ написан
LazyTalent
@LazyTalent
Data Engineer, Freelancer
Можно на питоне такое сделать
import os

folder = '/home/user/project'

for root, dirs, files in os.walk(folder):
    for f in files:
        if f.endswith('.pug'):
            new_file = f.replace('.pug', '.twig')
            os.rename(os.path.join(root, f), os.path.join(root, new_file))
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Можно просто написать переименовку в отдельном файле и выполнить find
/home/user/renfile.sh
renfile.sh
#!/bin/bash

OLD=$1
NEW=`basename $OLD .pug`
mv $OLD $NEW.twig


и потом
find /path_to_dir -name "*.pug" -execdir /home/user/renfile.sh {} \;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы