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

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

Возможный дубликат:
Переименование нескольких файлов (изменение расширения)

Предположим, что в моем текущем/рабочем каталоге есть пять файлов:

file1.xvg
file2.xvg
file3.xvg
file1.eps
file2.eps

Есть ли способ переименовать все файлы в текущем/рабочем каталоге с расширением.xvgи дайте им новое расширение.текст(оставляя.epsфайлы отдельно)? Можно ли это сделать с помощью rename, mv, или mmvвозможно? Я использую Ubuntu Linux. Спасибо!

решение1

Для вашего конкретного вопроса эта команда будет работать. Убедитесь, что вы довольны предложенным переименованием, затем отпустите , -nчтобы продолжить операцию.

rename -n 's/\.xvg$/.txt/' *.xvg

По сути, это означает, что для всех файлов с .xvgрасширением в текущем каталоге нужно найти файлы, которые заканчиваются $на ( ), .xvgи изменить эту часть имени на .txt.

Более подробная информация и пример ниже.


Да, renameкоманда сделает это за вас. Короткий пример, где я переименовываю все свои файлы с .htmlрасширением в .html_bak, игнорируя другие файлы в каталоге.

Я бысильнорекомендуем использовать -nопцию командной строкипервый(объясняется ниже), чтобы увидеть, какие изменения произойдут перед выполнением самой команды.

С чего я начинаю:

$ ls
a.html  a.txt  b.html  htmlfile

средства -nделают "пробный запуск"... просто показывают, что изменится, не меняйте ничего!

$ rename -n 's/\.html$/.html_bak/' *
a.html renamed as a.html_bak
b.html renamed as b.html_bak

Оригинальные файлы сохранились.

$ ls
a.html  a.txt  b.html  htmlfile

А теперь по-настоящему:

$ rename  's/\.html$/.html_bak/' *

Файлы переименованы.

$ ls
a.html_bak  a.txt  b.html_bak  htmlfile

В приведенных выше примерах я использую *для указания файлов, которые следует учитывать при операции переименования. Я мог бы ограничить это .htmlтолько файлами с расширением *.html.

Для получения дополнительной информации обратитесь к странице руководства по переименованию.

решение2

Это можно сделать так:

rename 's/xvg$/txt/' *.xvg

Шаблон glob гарантирует, что *.xvgбудут затронуты только файлы.

Связанный контент