5

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

14

В каталоге у меня есть несколько файлов с расширением .html. Мне нужно переименовать их все в .txt.

Как это сделать?
Я использую оболочку Bash.

5 ответ(ов)

7

Если вы используете Bash, нет необходимости в использовании внешних команд, таких как sed, basename, rename, expr и т.д. В вашем случае вы можете просто воспользоваться встроенными возможностями оболочки.

Вот пример, как это сделать:

for file in *.html
do
  mv "$file" "${file%.html}.txt"
done

В этом коде for выполняет итерацию по всем файлам с расширением .html. Команда mv переименовывает каждый файл, убирая .html и добавляя вместо него .txt. Использование ${file%.html} позволяет получить имя файла без расширения .html с помощью параметрической подстановки, что делает эту операцию эффективной и простой.

2

Команда rename 's/\.html$/\.txt/' *.html делает именно то, что вам нужно. Она заменяет расширение файлов с .html на .txt для всех файлов, соответствующих шаблону *.html в текущей директории. Если у вас есть файлы, такие как file1.html, file2.html, и вы выполните эту команду, они будут переименованы в file1.txt и file2.txt соответственно. Убедитесь, что у вас установлена утилита rename, так как в некоторых системах она может отсутствовать или иметь другую реализацию.

1

Если вам нужно переименовать все файлы с расширением .txt в файлы с расширением .txt_bak на OSX, вы можете использовать следующую команду:

find . -name '*.txt' -exec sh -c 'mv "$0" "${0%.txt}.txt_bak"' {} \;

Эта команда находит все файлы с расширением .txt в текущем каталоге и его подкаталогах, и для каждого найденного файла выполняет команду mv, чтобы изменить его расширение на .txt_bak.

Обратите внимание, что здесь используется конструкция ${0%.txt}.txt_bak, которая заменяет окончание .txt на .txt_bak. Убедитесь, что вы выполняете эту команду в нужном каталоге, так как она затронет все .txt файлы в структуре каталогов.

0

Для пользователей Ubuntu:

Вы можете использовать команду rename для изменения расширений файлов с .html на .txt. Запустите следующую команду в терминале:

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

Эта команда заменяет окончание .html на .txt для всех файлов с расширением .html в текущем каталоге. Убедитесь, что у вас установлен пакет rename. Если его нет, вы можете установить его с помощью следующей команды:

sudo apt-get install rename

После установки выполните предыдущую команду, чтобы изменить расширения файлов.

0

Это самое элегантное решение, которое я нашёл, и оно работает как на OSX, так и на Linux, и хорошо сочетается с git!

Для переименования файлов с расширением .js в .tsx можно использовать следующую команду:

find . -name "*.js" -exec bash -c 'mv "$1" "${1%.js}".tsx' - '{}' \;

А если вы хотите использовать git, выполните эту команду:

find . -name "*.js" -exec bash -c 'git mv "$1" "${1%.js}".tsx' - '{}' \;

Эти команды помогут вам эффективно изменить расширение файлов в вашем проекте.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь