Единственная стандартная команда для переименования файлов - это mv, и она имеет очень ограниченные возможности.То, что вы хотите сделать, по сути требует сценария, потому что сложность последовательного именования находится за пределами возможностей глобализации или даже регулярных выражений.Вы не указали, есть ли в каталоге другие файлы или вас интересует исходный порядок.В отличие от Windows, содержимое каталога Linux не находится в каком-либо предсказуемом порядке.Я предполагаю, что вы хотите сохранить первоначальный порядок.Ваш пример указывает на 0-отступ.Это важная деталь.Это означает, что лексическая сортировка соответствует тому, что мы интуитивно думаем, например, 43> 42. Лексически, 43> 42, но 42> 043. Я собираюсь показать вам, как это сделать с помощью Python, предполагая, что каталог содержит другие файлы ичто вы хотите сохранить первоначальный порядок.Первая строка - это шебанг, указывающий ОС использовать python3.Это в особенности для Ubuntu, но большинству систем потребуется это или его вариант, потому что они используют python 2 по умолчанию.Кроме того, хотя Python не заботится о том, какие типы окончаний строк присутствуют в сценарии, сама ОС считывает shebang и требует, чтобы они были Unix.
#!/usr/bin/env python3
import os
jpgfiles = [f for f in os.listdir() if os.path.splitext(f)[1].casefold() == jpg']
jpgfiles.sort()
for i,f in enumerate(jpgfiles) :
os.rename(f, '%04.d' % i + '.jpg')
Присущие Python возможности включают простой сценарий, подобный этомувыполнять довольно сложные операции.Но вам не нужно писать скрипт для каждого вида переименования файлов, который вы захотите сделать.Когда я не смог найти существующую программу для разнообразного переименования, которую я делаю, я написал программу на Python, которая может делать то, что вы хотите, и многое другое.Это rene.py.Вы можете получить его на Sourceforge https://rene -file-renamer.sourceforge.io .Это бесплатный и открытый исходный код (GNU GPL v3.0).Команда сделать то, что вы хотите, это rene * .jpg: .jpg I /// 5.