Гид по технологиям

Переименование каталогов в Linux

8 min read Linux Обновлено 24 Dec 2025
Переименование каталогов в Linux
Переименование каталогов в Linux

  • Переименование каталога в Linux не повреждает данные — меняется только путь к файлам. Используйте mv для простых случаев, файловый менеджер для GUI и rename или скрипты для массовых переименований.
  • Перед массовыми операциями делайте проверку на совпадение имён и резервную копию; избегайте переименования системных директорий.

Быстрые ссылки

  • Переименование не вредит данным
  • Использование mv
  • Использование файлового менеджера
  • Команда rename
  • Первые шаги с rename
  • Использование rename с другими командами
  • Когда что выбирать

Резюме

  • Переименование каталога в Linux не затрагивает содержимое — меняется только путь к данным.
  • Команда mv — самый простой и встроенный способ для переименования.
  • Для сложных массовых преобразований удобно использовать Perl-версию rename с регулярными выражениями или комбинацию find + xargs + rename.

Диспетчер файлов открыт в Linux.

Переименование не вредит данным

Переименование каталогов — безопасная операция с точки зрения целостности файлов: содержимое каталога остаётся нетронутым. Меняется только имя каталога и путь, по которому к нему обращаются. Это важно понимать при переносе и упорядочивании проектов.

Важно

  • Не переименовывайте системные каталоги (например /etc, /usr, /bin и т. п.) без полного понимания последствий — это может нарушить работу системы.
  • Если операция требует sudo, убедитесь, что вы знаете, почему нужна повышенная привилегия.

Использование mv

В большинстве простых случаев достаточно команды mv — она есть в любой системе Linux и не требует установки.

mv происходит ещё со времён раннего Unix и изначально означает «move» — переместить. Если вы перемещаете директорию в ту же директорию, но с новым именем, это эквивалент переименованию.

Примеры:

Покажем список в текущем каталоге:

ls

Переименование каталога old-work в archive-2:

mv old-work archive-2

Если каталог находится не в текущей директории, указывайте путь:

mv ~/htg/old-work ~/htg/archive-2

Проверяем:

ls

Советы по безопасности при использовании mv

  • Перед массовыми операциями выполните dry-run: перечислите каталоги с помощью ls или find, чтобы подтвердить цель.
  • Не используйте mv с шаблонами, если не уверены в результате; лучше сначала протестировать на копии.

Использование файлового менеджера

Графические файловые менеджеры (Nautilus / GNOME Files, Dolphin, Thunar и т. д.) позволяют переименовывать каталоги точечно.

В GNOME Files горячая клавиша для переименования — F2. Выберите каталог, нажмите F2, введите новое имя и подтвердите.

Использование файлового менеджера для переименования каталога

Введите новое имя и нажмите кнопку переименования.

Ввод нового имени каталога в файловом менеджере

После подтверждения каталог будет переименован.

Переименованный каталог в окне файлового менеджера

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

Команда rename

Когда нужно переименовать много каталогов по шаблону, команда rename даёт гибкость. Существует две несовместимые реализации rename: одна — простая утилита из coreutils, другая — Perl-основанная, поддерживающая регулярные выражения Perl. Мы рассказываем про Perl-версию, которая мощнее.

На разных дистрибутивах Perl-rename может называться по-разному:

  • Fedora: prename
  • Manjaro: perl-rename
  • Ubuntu: rename или prename (оба могут быть ссылкой на file-rename)

Установка:

Ubuntu / Debian:

sudo apt install rename

Fedora:

sudo dnf install prename

Manjaro / Arch:

sudo pacman -Sy perl-rename

Убедитесь, что используемая вами версия поддерживает Perl-выражения.

Первые шаги с rename

Perl-версия rename принимает выражения в синтаксисе Perl и применяет их к именам файлов или каталогов.

Предположим, в каталоге есть папки с разным регистром. Приведём все имена к нижнему регистру:

rename 'y/A-Z/a-z/' *

Пояснение выражения:

  • y — оператор трансформации знаков (аналог tr в Perl).
  • /A-Z/a-z/ — заменить все заглавные латинские буквы на строчные.
    • — применить ко всем элементам текущего каталога.

Другой пример: заменить точное имя каталога gamma на epsilon-2:

rename 's/gamma/epsilon-2/' *

Это выражение сделает замену во всех именах, где встречается строка gamma, поэтому каталог gamma-zeta превратится в epsilon-2-zeta. Чтобы заменить только целое имя, используйте якоря начала и конца строки:

rename 's/^gamma$/epsilon-2/' *

Ограничение переименования только на полные имена каталогов

Советы:

  • Используйте кавычки вокруг выражения, чтобы оболочка не интерпретировала спецсимволы.
  • Сначала протестируйте выражение в каталоге с копиями или используйте вывод списка (см. ниже).

Использование rename с другими командами

rename не принимает поток ввода напрямую. Чтобы передать найденные имена из find, используйте xargs или опцию -exec. Пример: переименовать все каталоги, оканчивающиеся на -old, в -archive, включая вложенные каталоги.

find . -depth -type d -name "*-old" | xargs -r rename "s/old$/archive/"

Разбор опций:

  • . — начать поиск в текущем каталоге.
  • -depth — глубинный (depth-first); сначала обрабатываются вложенные каталоги, что безопаснее при переименованиях деревьев.
  • -type d — искать только каталоги.
  • -name “*-old” — шаблон имен.
  • | — передать результат дальше по конвейеру.
  • xargs -r — не запускать команду, если вход пуст.
  • rename “s/old$/archive/“ — само правило переименования.

Альтернативный вариант с -exec (без xargs):

find . -depth -type d -name "*-old" -exec rename "s/old$/archive/" {} +

Преимущество -exec {} + — он группирует аргументы и безопаснее с пробелами в именах, хотя xargs с опцией -0 и find -print0 даёт сопоставимую надёжность.

Более безопасно с обработкой пробелов и специальных символов:

find . -depth -type d -name "*-old" -print0 | xargs -0 -r rename "s/old$/archive/"

Перед выполнением реальных изменений полезно сначала вывести, какие имена будут изменены, без самой команды rename. Например:

find . -depth -type d -name "*-old" -print

или показать, каким будет новый путь (пример на bash):

find . -depth -type d -name "*-old" -print0 | while IFS= read -r -d '' dir; do echo "$dir -> ${dir%old}archive"; done

Когда что выбирать

  • Для одиночного переименования используйте mv — это просто и понятно.
  • Для интуитивной работы вручную используйте файловый менеджер.
  • Для массовых или шаблонных переименований используйте rename с регулярными выражениями.
  • Для рекурсивных переименований в дереве используйте find + rename (+ xargs или -exec).

Типичные ошибки и когда это не работает

  • Переименование не меняет содержимое, но может «сломать» относительные ссылки, если другие объекты ссылаются на старый путь.
  • mv не проверяет на совпадение имён внутри целевой директории — если цель существует, mv переместит/слияние может произойти или содержимое перезапишется (в случае файлов); для директорий mv перезаписывать директории не будет, но перемещение может дать неожиданные результаты.
  • rename в разных дистрибутивах — разные реализации. Убедитесь, что ваша версия поддерживает Perl-выражения.
  • Переименование системных каталогов может привести к неработоспособности системы или сервисов.

Контрпример

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

Чек-листы для ролей

Чек-лист для новичка

  • Сделать резервную копию важных данных.
  • Проверить, что вы в нужном каталоге (pwd).
  • Использовать mv для одиночных переименований.
  • Не использовать sudo без необходимости.

Чек-лист для разработчика

  • Убедиться, что CI/CD и скрипты не зависят от старого пути.
  • Обновить импорты и конфигурации.
  • При массовых изменениях протестировать на ветке или копии проекта.

Чек-лист для системного администратора

  • Проверить сервисы и unit-файлы systemd на жёсткие пути.
  • Применять переименование в maintenance-окно, если нужно.
  • В случае системных директорий — подготовить план отката.

Шпаргалка команд

Быстрые примеры, которые пригодятся часто:

Переименовать каталоги локально

mv oldname newname

Переименовать с полным путём

mv /path/to/old /path/to/new

Переименовать всё в нижний регистр (Perl-rename)

rename 'y/A-Z/a-z/' *

Переименовать точное имя gamma в epsilon-2

rename 's/^gamma$/epsilon-2/' *

Переименовать рекурсивно каталоги, оканчивающиеся на -old

find . -depth -type d -name "*-old" -print0 | xargs -0 -r rename "s/old$/archive/"

Проверочный вывод без изменений (показать, что будет сделано)

find . -depth -type d -name "*-old" -print

Мини-методология: безопасное массовое переименование за 6 шагов

  1. Опишите цель и желаемый шаблон имен.
  2. Выполните find/ls, чтобы собрать список кандидатов.
  3. Сымитируйте результат (echo, подсчёт) и проверьте выборку.
  4. Сделайте резервную копию или снимок состояния (архив, tar, rsync).
  5. Выполните переименование на тестовой копии.
  6. Запустите переименование в рабочем каталоге и проверьте сервисы.

Рисковая матрица и способы уменьшения риска

  • Низкий риск: одиночные пользовательские каталоги. Митигаторы: обычная резервная копия.
  • Средний риск: проекты с CI/CD, скриптами и относительными путями. Митигаторы: тестовый прогон, обновление конфигураций, уведомление команды.
  • Высокий риск: системные каталоги и общие сервисные пути. Митигаторы: план отката, maintenance-окно, резервные копии и проверка зависимостей.

Критерии приёмки

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

Совместимость и примечания для дистрибутивов

  • Ubuntu/Debian: пакет rename предоставляет Perl-версию.
  • Fedora: команда называется prename.
  • Arch/Manjaro: пакет perl-rename.

Проверить, какая версия используется:

rename --version

Или получить путь к бинарнику:

which rename || which prename || which perl-rename

Если команда не поддерживает Perl-выражения, установите соответствующий пакет или используйте альтернативный язык (python, bash) для сложных преобразований.

Примеры реальных сценариев

  1. Переименование множества экспортированных архивов, которые при распаковке дали каталоги в верхнем регистре:
# Привести все каталоги в текущей папке к нижнему регистру
rename 'y/A-Z/a-z/' */
  1. Удалить префикс tmp- у каталогов из временных сборок:
rename 's/^tmp-//' tmp-*
  1. Переименовать даты в формате YYYYMMDD на YYYY-MM-DD (пример на perl-rename):
rename 's/^(\d{4})(\d{2})(\d{2})$/\1-\2-\3/' 2020*

Скрипт отката простого переименования

Если вы заранее подготовили лог переименований, откат можно автоматизировать. Пример лог-файла format: old_path|new_path

#!/bin/bash
LOG=rename.log
while IFS='|' read -r old new; do
  if [ -d "$new" ] && [ ! -e "$old" ]; then
    mv "$new" "$old"
  else
    echo "Пропуск: нельзя откатить $new -> $old"
  fi
done < "$LOG"

Глоссарий

  • mv — встроенная утилита для перемещения/переименования файлов и каталогов.
  • rename — утилита для массового переименования; Perl-версия поддерживает регулярные выражения.
  • find — команда поиска файлов и каталогов по критериям.
  • xargs — принимает поток ввода и формирует аргументы для командной строки.

Короткое объявление для команды (100–200 слов)

Мы планируем упорядочить структуру репозитория и привести имена каталогов к единому стандарту. Для одиночных изменений используйте mv или файловый менеджер. Для пакетных корректировок будет использована Perl-версия rename в сочетании с find. Перед началом работ будет выполнен тестовый прогон и создаётся резервная копия. Работы запланированы с учётом времени простоя сервисов, чтобы избежать влияния на рабочие процессы. Инструкции и чек-листы доступны в документации; при изменениях уведомим владельцев сервисов.

Заключение

Переименование каталогов в Linux — рутинная, но иногда чувствительная операция. Простые переименования решаются командой mv или через GUI. Для массовых и шаблонных преобразований лучше использовать Perl-rename, find и xargs. Всегда проверяйте выборку перед выполнением, делайте резервные копии и имейте план отката.


Если нужно, могу подготовить готовые скрипты для вашего дерева каталогов или проверить конкретное регулярное выражение на тестовой выборке.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

OneNote для работы: руководство и шаблоны
Productivity

OneNote для работы: руководство и шаблоны

Продвижение магазина на Etsy: 13 стратегий
E-Commerce

Продвижение магазина на Etsy: 13 стратегий

Найти и заменить в Excel — текст, числа и форматирование
Excel

Найти и заменить в Excel — текст, числа и форматирование

Создать точку восстановления в Windows через CMD и PowerShell
Windows

Создать точку восстановления в Windows через CMD и PowerShell

Как найти и убрать CPU/GPU бутылочное горлышко
Гайды

Как найти и убрать CPU/GPU бутылочное горлышко

Лучший Kodi для Raspberry Pi
Медиацентр

Лучший Kodi для Raspberry Pi