Переименование группы файлов с помощью командной строки

Предположим, у меня есть папка с тысячами фотографий, названных случайным образом. Как можно переименовать их как фото1, фото2, ..., фото1000 из командной строки / терминала?

7
задан 23 May 2014 в 22:09

2 ответа

Я предположу, что Вы хотите сохранить надлежащий суффикс на именах файлов:

c=1; for f in *.jpg ; do mv "$f" "photo$c.jpg" ; c=$(($c+1)) ; done

Примечания

  • c=1: Этот initalizes счетчик. Можно установить его на любое число, которое Вы любите.

  • for f in *.jpg ; do: Это показывает начало оболочки for - цикл. В то время как большая часть сценариев оболочки может быть трудной сделать работу, когда имена файлов могут содержать пробелы, новые строки или другие трудные символы, эта конструкция безопасна против даже самых враждебных имен файлов.

  • mv "$f" "photo$c.jpg": Это использует счетчик c и делает фактическое переименование файлов. Имя файла $f находится в двойных кавычках для защиты имени от различных возможных расширений оболочки.

  • c=$(($c+1)): Это увеличивает счетчик для следующего цикла

  • done: показывание конца for цикл.

11
ответ дан 23 May 2014 в 22:09

Можно использовать этот код:

for i in *.jpg; do let j+=1 ; mv "$i" "photo$j.jpg" ; done
3
ответ дан 23 May 2014 в 22:09

Другие вопросы по тегам:

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