Как переименовать папку в Linux: полное руководство из терминала

Последнее обновление: Декабрь 30 2025
Автор: TecnoDigital
  • Освоение команды mv позволяет быстро и безопасно переименовывать и перемещать папки и файлы в Linux как локально, так и на удаленных серверах.
  • Команды cp и rm дополняют команду mv, позволяя копировать, удалять и перестраивать целые каталоги, используя такие параметры, как -r, -i, -fy и -v.
  • Инструмент переименования и циклы командной оболочки упрощают массовое переименование файлов с использованием шаблонов и регулярных выражений.
  • Использование правильных путей, проверка с помощью команды `ls` и осторожное обращение с подстановочными знаками и деструктивными параметрами — залог предотвращения потери данных.

Переименование папки в Linux

Если вы работаете с серверами или разрабатываете проекты в Linux, рано или поздно вам придётся переименовывать папки и файлы прямо из терминала . Звучит достаточно просто, но на начальном этапе освоение команд, путей и параметров может показаться сложным, особенно если вы привыкли к графической среде, такой как GNOME, KDE или аналогичной, и больше привыкли к файловому менеджеру.

Хорошая новость в том, что в Linux все это можно решить с помощью нескольких мощных команд. Понимая, как работают `mv`, `cp`, `rm` и инструмент `rename` , вы получите полный контроль над переименованием, перемещением, копированием и управлением каталогами как на локальном компьютере, так и на удаленных серверах через SSH.

Основные понятия: каталоги, пути и терминал в Linux.

Прежде чем что-либо делать, важно точно понять, что такое папка в Linux: внутри системы каталог — это особый тип файла , который хранит индекс имен файлов и подкаталогов, которые он содержит. Другими словами, когда мы переименовываем папку, мы не копируем и не изменяем ее содержимое; мы меняем только имя индекса.

В Linux файловая система имеет иерархическую структуру, поэтому пути могут быть абсолютными или относительными . Абсолютный путь всегда начинается с / (например, /home/user/project ), тогда как относительный путь интерпретируется на основе текущего каталога (например, project/img, если вы уже находитесь в /home/user).

Для навигации по этой структуре мы используем терминал. Команда ` cd` меняет каталоги, ` pwd` показывает точный путь, а `ls` выводит содержимое. Эти три команды необходимы для того, чтобы примеры переименования, которые мы увидим ниже, не приводили к ошибкам пути.

При работе с серверами, особенно в веб-разработке, очень часто используется SSH-подключение: `ssh user@server` . После подключения все операции с `mv`, `cp`, `rm` и `rename` выполняются так же, как и на локальном компьютере, за исключением того, что теперь вы затрагиваете файлы на удалённом сервере.

Команда `mv`: перемещение и переименование каталогов в Linux.

Ключевым инструментом для переименования папок в Linux является команда `mv` , сокращение от "move". Ее основная функция — перемещение файлов и каталогов, но она также отлично подходит для их переименования без физического перемещения.

Общий синтаксис команды `mv` очень прост: `mv SOURCE DESTINATION` . Параметр `SOURCE` — это уже существующий файл или папка, а `DESTINATION` — это новое имя или путь (плюс имя), куда мы хотим его переместить или переименовать.

Чтобы увидеть все доступные параметры, вы можете запустить команду `mv --help` в терминале. Вы увидите что-то вроде `mv ... `, а также список параметров и флагов, которые позволяют адаптировать поведение команды к вашим потребностям.

Наиболее часто используемые параметры `mv` при работе с каталогами и файлами — это `-f`, `-i`, `-u` и `-v` . Они не являются обязательными, но обеспечивают значительный контроль и безопасность, особенно в случаях, когда существует риск случайной перезаписи важных данных.

Дополнительные полезные параметры команды mv

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

При использовании опции -i (интерактивный режим) команда mv запросит подтверждение перед перезаписью существующего каталога назначения. Например, если целевой каталог имеет то же имя, что и каталог, который вы хотите переместить, mv запросит подтверждение, и вы сможете ввести y/n для продолжения или отмены.

Флаг -f (принудительное перезаписывание) делает прямо противоположное: он ничего не запрашивает и перезаписывает без разбора . Он полезен в автоматизированных скриптах или когда вы уверены, что целевой файл может быть перезаписан, но использовать его бездумно, если вы еще учитесь, не рекомендуется.

Опция -u перемещает или переименовывает файл только в том случае, если исходный файл новее целевого или если целевой файл еще не существует. Это полезно при синхронизации каталогов, если вы хотите избежать ненужных замен.

Наконец, опция -v (подробный вывод) заставляет mv отображать, что он делает на каждом шаге. То есть вы увидите строки типа "renamed 'img' -> 'images'" , что очень полезно для отслеживания операций с большим количеством файлов.

Как переименовать папку в Linux с помощью команды `mv`

Чтобы переименовать каталог, не перемещая его, достаточно указать текущее и новое имя. Наиболее простой способ — `mv old_folder new_folder` , всегда находясь в родительском каталоге этого каталога.

Представьте, что у вас в проекте есть папка с именем img, и вы хотите переименовать её в images . Если вы уже находитесь в каталоге проекта, вы просто выполните команду `mv img images` , и через секунду сможете избавиться от старого имени.

  Центры обработки данных и батареи: как системы хранения энергии меняют правила игры.

Для более наглядного примера можно сначала вывести список содержимого с помощью команды `ls -l` , проверить каталог `img` , выполнить команду `mv -v img images` , а затем снова убедиться с помощью команды `ls -l` , что отображается только `images` . Суффикс `-v` отобразит сообщение о переименовании, чтобы избежать путаницы.

Важно отметить деталь, которая часто вызывает путаницу на первый взгляд: при переименовании каталога в конце имени не ставится косая черта "/" . То есть, нужно писать mv img images , а не mv img/ images/ , потому что в этом контексте косая черта в конце не нужна и может привести к ошибкам, если её смешать с другими путями.

Переименовать и переместить папку одновременно.

Одно из преимуществ команды `mv` заключается в том, что она позволяет одновременно перемещать каталог в другое место и переименовывать его — всё одной командой. Это невероятно полезно при реорганизации крупного проекта или наведении порядка в структуре сервера.

Допустим, у вас есть папка OldProject в текущем каталоге, и вы хотите переместить её в /home/user/Workspace , переименовав в NewProject . Команда будет выглядеть так: mv OldProject /home/user/Workspace/NewProject.

Если вам нужно просто подняться на один уровень выше в иерархии, сохранив при этом имя, вы можете использовать относительные пути. Например, чтобы переместить папку img в родительский каталог без переименования, вы просто используете `mv img ../img` . В этом случае `..` означает «каталог выше».

Вы также можете переместить его в другую папку и заодно переименовать. Если у вас в проекте есть папка "files" , и вы хотите переименовать файл "img " внутри этой папки, используйте команду ` mv img files/images` . После выполнения этой команды конечный путь будет выглядеть примерно так: `./ files/images`.

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

Переименование каталогов и файлов на удалённых серверах с помощью SSH.

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

Для подключения к серверу обычно используется команда типа `ssh your-user@your-server` . После аутентификации вы увидите приглашение удаленного доступа и сможете перемещаться по каталогам с помощью команды `cd` , выводить список каталогов с помощью команды `ls` и переименовывать каталоги с помощью команды `mv old_folder new_folder` точно так же.

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

Чтобы свести к минимуму риски, рекомендуется комбинировать команды `mv` и `ls` до и после каждой операции, а также использовать `mv -i` для запроса подтверждения при возможности перезаписи. Работа с абсолютными путями также помогает избежать путаницы с текущими каталогами.

При переименовании папок или файлов, используемых скриптами, службами или веб-приложениями, убедитесь, что нет жестко заданных путей со старым именем . Если они есть, обновите их, указав новое имя, чтобы избежать ошибок 404, сбоев загрузки ресурсов или невозможности запуска служб.

В Linux скопируйте каталоги с помощью команды `cp` перед переименованием.

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

Базовый синтаксис команды `cp` можно кратко описать как `cp SOURCE DESTINATION` . Если SOURCE — это файл, особых сложностей нет; но если вы хотите скопировать целую папку, есть важный нюанс: необходимо использовать опцию `-r` или `-R`, чтобы сделать копирование рекурсивным и включить все её содержимое.

Например, если вам нужно скопировать папку fonts в то же место, но с другим именем, вы можете сделать что-то вроде `cp -r fonts/fonts2` . Рекомендуется добавлять косую черту после `fonts`, чтобы было понятно, что это каталог, хотя команда `cp` обычно предполагает это; в любом случае, многие руководства рекомендуют именно такой формат, чтобы избежать неправильного толкования.

Если вы хотите скопировать ту же папку из одного каталога в другой, используйте относительные или абсолютные пути по мере необходимости. Классический пример: `cp -r fonts/ ../fonts2` , которая копирует папку `fonts` в родительский каталог с именем `fonts2`, оставляя исходную папку нетронутой.

Среди параметров команды `cp` наиболее распространены -i (запрос подтверждения перед перезаписью), -v (звуковой режим для отображения хода выполнения) и, конечно же, -r/-R для обозначения рекурсии по каталогам. Остальные параметры можно посмотреть с помощью `man cp` или `cp --help`, если вы хотите точно настроить копирование.

Переименование файлов в Linux с помощью команды `mv`

Все, что мы видели для каталогов, в равной степени применимо и к отдельным файлам: команда `mv` работает как для перемещения, так и для переименования файла , и синтаксис практически идентичен, но на уровне файла.

  Windows 11: преимущества и возможности

Если вы находитесь в директории, содержащей файл file1.txt , и хотите переименовать его в file2.txt , просто выполните команду `mv file1.txt file2.txt` . Содержимое останется тем же, изменится только имя файла.

Если вы находитесь не в нужном каталоге, сначала перейдите в него с помощью команды `cd` или укажите полный путь в команде. Вы можете сделать что-то вроде `cd /home/user/docs/files` , а затем `mv archivo1.txt archivo2.txt` , или напрямую `mv /home/user/docs/files/archivo1.txt /home/user/docs/files/ archivo2.txt`.

Чтобы было понятно, переименование файла с помощью команды `mv` концептуально эквивалентно « копированию файла под новым именем и удалению исходного», хотя внутри файловая система обрабатывает это гораздо эффективнее и без дублирования данных.

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

Переименовывать несколько файлов одновременно с помощью циклов и находить

Сама по себе команда `mv` не имеет специальной опции для одновременного переименования множества файлов , но она прекрасно работает с оболочкой Linux, поэтому её можно комбинировать с циклами `for`, `while` или командой `find` для выполнения массового переименования.

Типичный пример — изменение расширения набора файлов. Если вы хотите, чтобы все файлы с расширением .txt в текущем каталоге стали файлами с расширением .pdf, вы можете использовать цикл for следующим образом: for f in *.txt; do mv — "${f}" "${f%.txt}.pdf"; done . Этот цикл перебирает каждый файл с расширением .txt, "вырезает" часть .txt и заменяет её на .pdf.

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

Вы также можете использовать команду `find` для поиска файлов, соответствующих определенным условиям (по имени, типу, дате и т. д.), и применить к ним команду `mv` в действии `-exec` или с помощью цикла `while`, считывая результаты. Это очень полезно для более сложных операций переименования в больших структурах каталогов.

Если всё это звучит немного сложно, не волнуйтесь: со временем вы увидите, что сочетание оператора `mv` с циклами значительно упрощает работу и позволяет автоматизировать повторяющиеся задачи всего несколькими строками скрипта оболочки.

Команда переименования: расширенное массовое переименование

Помимо команды `mv`, во многих дистрибутивах есть инструмент ` rename` , специально разработанный для очень эффективного переименования целых групп файлов с использованием регулярных выражений Perl.

Эта команда не всегда предустановлена, но добавить её очень просто. В Debian, Ubuntu, Linux Mint и производных дистрибутивах можно использовать `sudo apt install rename` . В CentOS или RHEL обычно используется `sudo yum install rename` . А в Arch Linux обычно используются пакеты типа `perl-rename` из AUR (например, с `yay` или `yaourt`).

Типичный синтаксис для команды `rename` выглядит так: `rename 's/old_pattern/new_pattern/' files` . Внутри кавычек находится регулярное выражение Perl для замены, где "s/this/for_this/" указывает, какой шаблон нужно найти и чем его заменить.

Например, если в каталоге вы создали несколько файлов с именами file1.txt, file2.txt, file3.txt, file4.txt и file5.txt (что можно быстро сделать с помощью команды mkdir filetorename; cd filetorename; touch file{1..5}.txt ), вы можете переименовать только file1.txt в newfile1.txt с помощью команды rename 's/file1/newfile1/' file1.txt.

Если вам нужно изменить расширение всех файлов .txt на .php, вы можете просто выполнить команду `rename 's/.txt/.php/' *.txt` . После выполнения команды вы можете проверить результат с помощью команды `ls` , чтобы убедиться, что все имена были преобразованы должным образом.

Практические примеры использования функции переименования: заглавные буквы, строчные буквы и пробелы.

Одно из преимуществ `rename` заключается в том, что благодаря регулярным выражениям Perl он позволяет выполнять очень специфические преобразования, которые были бы довольно громоздкими при использовании простого цикла и `mv`. Стоит помнить о нескольких типичных сценариях использования.

Если вы хотите преобразовать все имена файлов в каталоге в верхний регистр , вы можете выполнить команду, например, `rename 'y/az/AZ/' *` . В этом синтаксисе используется операция транслитерации `y`, которая заменяет каждую строчную букву на её заглавный эквивалент.

Чтобы сделать обратное, то есть преобразовать все имена в нижний регистр , команда будет выглядеть так: `rename 'y/AZ/az/' *` . Это очень полезно, когда вы сталкиваетесь с системами, где со временем смешение заглавных и строчных букв вышло из-под контроля.

Ещё одна распространённая проблема — файлы с пробелами в именах, что может быть довольно неудобно при работе в терминале. Вы можете заменить пробелы на подчёркивания, используя что-то вроде ` rename 'y/ /_/' *` , таким образом избегая необходимости экранировать пробелы обратными косыми чертами или кавычками.

Если файлы, которые необходимо изменить, находятся в другом каталоге, вы также можете передать путь непосредственно в `rename`, например, `rename 's/.txt/.php/' PATH/TO/FILES` . Таким образом, вам не нужно будет менять каталоги перед выполнением команды.

Чтобы увидеть все параметры, поддерживаемые вашей конкретной версией `rename`, рекомендуется запустить ` rename --help` или проверить справочную страницу (man page). Имейте в виду, что существуют варианты `rename`, специфичные для разных дистрибутивов, поэтому всегда полезно проверить точный синтаксис, доступный в вашей системе.

  Мониторинг серверов: лучшие практики для обеспечения надежной работы.

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

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

В дистрибутивах на основе Debian, таких как Ubuntu или Linux Mint, можно выполнить команду `sudo apt remove rename` . Это удалит пакет и сделает его недоступным в терминале, хотя при желании его всегда можно переустановить позже.

В CentOS, RHEL и производных системах эквивалентной командой для удаления пакета обычно является sudo yum remove rename , которая удалит утилиту массового переименования из системы.

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

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

Удаление файлов и каталогов с помощью команды rm: будьте осторожны при очистке.

При любой операции по организации файлов обычно наступает момент, когда нужно удалить то, что больше не требуется. В Linux для этого используется команда `rm` , которая позволяет удалять как отдельные файлы, так и целые каталоги.

Общий синтаксис команды rm можно записать как rm FILE… . Если вы хотите удалить отдельный файл, например, старый файл журнала, достаточно простой команды rm file.log , при условии наличия необходимых прав доступа.

Для работы с каталогами необходимо использовать опцию -r или -R , которая включает рекурсивное удаление. Например, команда `rm -r folder` попытается удалить папку и все ее содержимое (включая подкаталоги и файлы), но сделает это без запроса подтверждения для каждого элемента, если вы не добавите дополнительные флаги.

Если вы хотите пойти ещё дальше и принудительно удалить файлы, даже если есть ограничения или файлы только для чтения, используйте комбинацию `rm -rf folder` , которая сочетает рекурсию и «принуждение». Это очень мощный, но и очень опасный метод: потеря концентрации при выполнении этой команды может уничтожить половину вашего компьютера.

Поэтому в средах, где вы предпочитаете проявлять большую осторожность, целесообразно комбинировать параметры -r и -i , чтобы команда rm спрашивала вас, хотите ли вы удалить каждый файл или каталог. Например, команда rm -ri folder заставит вас подтверждать каждый шаг, снижая риск удаления чего-либо, чего удалять не следует.

Удалите пустые каталоги и другие данные из команды rm.

Помимо команды `rm`, существует специальная команда `rmdir` , единственная функция которой — удаление пустых каталогов . Если каталог содержит что-либо, команда `rmdir` завершится ошибкой и выдаст предупреждение о том, что удалить его невозможно, поскольку он не пуст.

Это делает команду `rmdir` немного более безопасным вариантом, когда вам нужно очистить папки, которые, как вы знаете, больше не содержат файлов, например, после перемещения их содержимого в другое место. Чтобы увидеть все её параметры, вы можете запустить команду `man rmdir` в терминале.

Возвращаясь к команде rm, помимо параметров -i, -f, -r/-R и -v (для вывода списка удаляемых файлов), помните, что вы можете использовать подстановочные знаки, такие как * и ?, для выбора групп файлов. Типичный пример — удаление всех файлов .txt из каталога с помощью команды типа rm *.txt.

Также можно удалить несколько файлов одновременно, явно указав их, например, `rm file1.log file2.log file3.log` . Это избавит вас от необходимости многократно вводить `rm`, если вы точно знаете, какие файлы хотите удалить.

В любом случае, всякий раз, когда вы собираетесь выполнить команду rm с подстановочными знаками или с параметром -r, стоит просмотреть команду перед нажатием Enter и, если возможно, предварительно выполнить команду ls, чтобы проверить, какие файлы соответствуют использованному вами шаблону.

Овладев командами rm, mv, cp и, при необходимости, rename, вы сможете беспрепятственно работать как на своем рабочем столе Linux, так и на удаленных серверах, переименовывая папки и файлы, перемещая, копируя или удаляя их, не полагаясь на графическую среду и будучи уверенными в том, что точно знаете, что делаете в каждый момент времени.

Организовать коллекцию ROM на NAS
Связанная статья:
Как пошагово организовать коллекцию ROM на NAS