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

Команда mv является основным инструментом в системах на основе Unix для перемещения и переименования файлов и каталогов. В этой статье мы рассмотрим некоторые сочетания клавиш, о которых вы, возможно, не знали.

Расширение скобки

Расширение фигурных скобок — это мощная функция оболочки, которая генерирует несколько аргументов на основе шаблона, заключенного в фигурные скобки ({}). Вот пример того, как вы можете использовать расширение фигурной скобки с командой mv для переименования файла:

mv output-{xyz,abc}.txt

Эта команда переименует «output-xyz.txt» в «output-abc.txt». Оболочка расширяет шаблон внутри фигурных скобок, генерируя два отдельных аргумента: «output-xyz.txt» и «output-abc.txt».

Добавление или удаление части имени файла

Раскрытие фигурной скобки также можно использовать для добавления или удаления части имени файла. Например, чтобы переименовать «output-xyz.txt» в «output-xyz-abc.txt», вы можете использовать следующую команду:

mv output-xyz{,-abc}.txt

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

Дополнительно: переименование нескольких файлов

Подстановку команд можно комбинировать с циклами переименования нескольких файлов. Например, чтобы переименовать все файлы в каталоге, оканчивающиеся на «-xyz.txt», на «-abc.txt», вы можете использовать следующую команду:

for file in *-xyz.txt; do mv "$file" "${file//-xyz/-abc}"; done

Секреты и уловки

Завершение табуляции

Использование автодополнения с помощью табуляции может сэкономить ваше время за счет автоматического заполнения имен файлов на основе введенных вами данных. Чтобы использовать завершение с помощью табуляции, просто начните вводить имя файла и нажмите клавишу Tab. Если есть только одно совпадение, оболочка дополнит имя файла за вас. Если совпадений несколько, повторное нажатие Tab отобразит все совпадающие файлы.

Использование расширения истории

Расширение истории позволяет повторно использовать предыдущие команды, что может быть полезно для переименования файлов с похожими шаблонами. Чтобы использовать расширение истории, введите восклицательный знак (!), за которым следует шаблон, соответствующий предыдущей команде. Например, если вы ранее использовали команду mv output-xyz{,-abc}.txt, вы можете повторно использовать ее для другой задачи переименования, введя !mv и нажав Enter.

Создание пользовательских функций для сложных задач переименования

Для более сложных задач переименования вы можете создать собственные функции оболочки, чтобы упростить процесс. Вот пример функции оболочки, которая переименовывает файлы на основе заданного пользователем шаблона:

function rename_files() {
  local pattern="$1"
  local replacement="$2"
  shift 2
  for file in "$@"; do
    local new_name="${file/$pattern/$replacement}"
    mv "$file" "$new_name"
  done
}
$ rename_files "xyz" "abc" *-xyz.txt

Эта функция принимает шаблон, замену и список файлов в качестве аргументов. Затем он переименовывает файлы, заменяя шаблон заменой.

Заключение

Команда mv в сочетании с функциями оболочки, такими как раскрытие фигурных скобок и подстановка команд, может быть эффективным способом переименования файлов без двойного ввода их имен. Используя эти методы и включив советы и рекомендации, такие как завершение табуляции и расширение истории, вы можете оптимизировать рабочий процесс переименования и минимизировать время, затрачиваемое на повторяющиеся задачи.

Спасибо, что прочитали. Если вам нравятся такие истории и вы хотите поддержать меня, пожалуйста, подумайте о том, чтобы стать участником Medium. Это стоит 5 долларов в месяц и дает неограниченный доступ к контенту Medium. Я получу небольшую комиссию, если вы зарегистрируетесь по моей ссылке.

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 💰 Бесплатный курс собеседования по программированию ⇒ Просмотреть курс
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу