ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как переименовать каталоги в Linux

Как переименовать каталоги в Linux

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

В этой статье объясняется, как переименовать каталоги с помощью командной строки.

 

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

В Linux и Unix-подобных операционных системах вы можете использовать команду mv (без перемещения) для переименования или перемещения файлов и каталогов из одного места в другое.

Синтаксис команды mv для перемещения каталогов следующий:

mv [OPTIONS] source destination

Например, чтобы переименовать каталог dir1 в dir2, вы запустите:

mv dir1 dir2

 

При переименовании каталогов вы должны указать в mvкоманде ровно два аргумента. Первый аргумент – это текущее имя каталога, а второй – новое имя.

Важно отметить, что, если каталог dir2 уже существует, то каталог dir1 перемещается в dir2.

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

mv /home/user/dir1 /home/user/dir2

 

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

Переименование одного каталога – простая задача, но переименование нескольких каталогов одновременно может быть проблемой, особенно для новых пользователей Linux.

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

 

Переименование нескольких каталогов с помощью mv

Команда mv может переименовывать только один файл за раз. Однако его можно использовать вместе с другими командами, такими как команда find или внутри циклов, для переименования нескольких файлов одновременно.

Вот пример, показывающий, как использовать цикл for в Bash для добавления текущей даты к именам всех каталогов в текущем рабочем каталоге:

for d in *; do 
  if [ -d "$d" ]; then
    mv -- "$d" "${d}_$(date +%Y%m%d)"
  fi
done

Давайте проанализируем код построчно:

Вот решение той же задачи с использованием mv в сочетании с find:

find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;

Команда find передает все каталоги mv один за другим, используя опцию -exec. Строка {} – это имя каталога, обрабатываемого в данный момент.

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

 

Переименование нескольких каталогов с помощью rename

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

Существует две версии команды rename с разным синтаксисом. Мы будем использовать версию команды Perl rename. Файлы переименовываются в соответствии с заданным регулярным выражением perl.

В следующем примере показано, как заменить пробелы в именах всех каталогов в текущем рабочем каталоге на подчеркивания:

find . -mindepth 1 -prune -type d | rename 'y/ /_/'

 

Чтобы быть в безопасности, передайте опцию -n, чтобы rename печатала имена каталогов, которые будут переименованы, не переименовывая их.

Вот еще один пример, показывающий, как преобразовать имена каталогов в нижний регистр:

find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'

 

Вывод

Мы показали вам, как использовать mvкоманды для переименования каталогов.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Exit mobile version