На этот вопрос уже есть ответ здесь:
У меня 40 файлов mp4 в папке.
Каждый файл начинается с video_
. Каждый файл имеет формат видео _ *. Mp4
.
Мне нужно переименовать все файлы с удалением video_
из начала каждого файла. Как я могу сделать это с терминала?
Можно сделать это терминальной командой в каталоге, где эти файлы расположены.
rename 's/^video_//' *.mp4
, Который означает выбор все имена файлов, запущенные с video_
и замена video_
ни с чем. Я предполагаю s
, для "замены".
^
шоу начало строки. Если Вы опустите ^
, то первое вхождение video_
будет удалено, неважно, где оно расположено в строке. Но в Вашем случае это действительно не имеет значения.
Примечание : версии Ubuntu выше 17.04 не поставлются с rename
пакет, однако можно все еще установить его из репозиториев по умолчанию через sudo apt install rename
Используя rename
(prename
):
rename -n 's/^video_//' video_*.mp4
, Если Вы, удовлетворяет изменениями, которые будут сделанными, удаляют -n
для разрешения операции, происходит на самом деле:
rename 's/^video_//' video_*.mp4
Используя bash
расширение параметра:
for file in video_*.mp4; do mv -i "$file" "${file#video_}"; done
${file#video_}
шаблон расширения параметра для удаления video_
из запуска имен файлов. Или
for file in video_*.mp4; do mv -i "$file" "${file/video_/}"; done
Этот принимает video_
, прибывает только, после того как в именах файлов
${file/video_/}
bash
шаблон расширения параметра, который заменит video_
от имен файлов с пробелом.
Используя rename
rename 's/^video_//' *.mp4