Задать вопрос
@AmdInDrive

Как сделать массовое переименование файлов в директории?

Здравствуйте всем! У меня снова появился один из легчайших вопросов, над которым я ломаю голову целые сутки. У меня тут появилось задание сделать скрипт, который переименует файлы в определенной директории :
File1
...
File5
В например :
File1_renamed
...
File5_renamed
Я знаю что это можно сделать через suffix , но в том и загвоздка, что как пример мне дано простое переименование файлов с добавлением этого renamed, и надо сделать именно так. Я подумывал вывести список файлов и переименовать их так, но что-то даже представления не имею как это сделать, чтобы изменения повлияли на названия самих файлов в директории, а не просто как вывод в консоль.
  • Вопрос задан
  • 2107 просмотров
Подписаться 1 Простой 8 комментариев
Решения вопроса 1
shambler81
@shambler81 Куратор тега Linux
find /var/www/ -type f -exec mv {} {}_renamed \;

find-рекурсивный поиск от заданного каталога и ниже
/var/www- где искать, если в текущем каталоге то можно заменить на .
-type f - только файлы
-exec выполнить с найденным
mv переместить
{} то что найдено в данном случае имя файла
\; - просто закончит команду.
Проверить можно так, вместо переименовывания вы получите просто принт самих команд.

find /var/www/ -type f -exec echo {} {}_renamed \;

5fb18a8d63453365594996.png
Отметить решенным, спасибо кэп.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
xotkot
@xotkot
хорошо есть и хорошо весьма
есть много способов как переименовать, вот нагугленные примеры Переименование файлов с помощью find, sed и xargs
конкретно в вашем случае можно сделать так:
ls -1 |awk '{print $0,$0"_renamed"}' | xargs -n2 mv

с пробелами в названии
ls -1 |awk '{print "\""$0"\" \""$0"_renamed\""}' | xargs -n2 mv
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
rename -e 's/(.*)/$1_renamed/' *
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Ключевые фразы для поиска - "find с ключом -exec", "regex", "mv".
Ответ написан
Ваш ответ на вопрос

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

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