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

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

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

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

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

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

Синтаксис команды 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 , или внутри циклов для одновременного переименования нескольких файлов.

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

 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 с разным синтаксисом. Мы будем использовать версию команды rename на Perl. Файлы переименовываются в соответствии с заданным регулярным выражением Perl .

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

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

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

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

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

Заключение

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

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

переименовать mv- терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *