Переименовать папку через консоль linux

How do I rename a directory via the command line?

I have got the directory /home/user/oldname and I want to rename it to /home/user/newname . How can I do this in a terminal?

7 Answers 7

mv /home/user/oldname /home/user/newname 

This will not work if the new name is already an existing directory. Instead, it will move the old directory inside the new one.

If the directory name is the same with capitalization you will get No such file or directory . To avoid this do something like mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder .

To just rename a file or directory type this in Terminal:

with space between the old and new names.

To move a file or directory type this in Terminal.

it will move the file to the desktop.

mv -T /home/user/oldname /home/user/newname 

That will rename the directory if the destination doesn’t exist or if it exists but it’s empty. Otherwise it will give you an error.

mv /home/user/oldname /home/user/newname 

One of two things will happen:

  • If /home/user/newname doesn’t exist, it will rename /home/user/oldname to /home/user/newname
  • If /home/user/newname exists, it will move /home/user/oldname into /home/user/newname , i.e. /home/user/newname/oldname

Doesn’t work if you want to capitalize the directory name in a case-insensitive filesystem (likely on MacOS). mv -T $PWD/analisys $PWD/Analisys returns mv: ‘/Users/sixtykeys/Projects/murphy/tmp/analisys’ and ‘/Users/sixtykeys/Projects/murphy/tmp/Analisys’ are the same file . I worked around this by using an intermediate name (i.e. analisys_ ).

The command may not have been successful due to the limitations of the filesystem, but from another perspective it was successful in interpreting your intentions (renaming a directory, not moving it) 🙂

Источник

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

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

Читайте также:  Source based routing on linux

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

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

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

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

mv [OPTIONS] source destination 

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

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

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

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

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

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

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

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

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

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

Вот пример, показывающий, как использовать цикл for в 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" "$_$(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 для переименования каталогов.

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

Источник

Переименование файлов в Linux

mv rename linux

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

Переименование командой mv

Команда mv (от слова move) используется для переименования или перемещения файлов и директорий из командной строки.

Синтаксис команды mv очень простой:

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

Основные опции:
-f — перезаписывать существующие файлы.
-n — не перезаписывать существующие файлы.
-i — выдавать запрос на перезапись существующих файлов.
-u — не перемещать файлы, которые уже существуют, если существующие файлы новее (время модификации новее).
-v — выводить имя каждого файла перед его переносом.

Как задавать имена файлов и директорий для переименования:

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

Переименование файла

Переименование файла myfile1.dat в файл myfile2.dat:

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

mv /home/pingvinus/myfile1.dat /home/pingvinus/myfile2.dat

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

Переименование директории /home/pingvinus/mydir1 в директорию /home/pingvinus/mydir2 . Справедливо, если /home/pingvinus/mydir2 не существует.

mv /home/pingvinus/mydir1 /home/pingvinus/mydir2

Если /home/pingvinus/mydir2 существует, то, выполнив команду:

mv /home/pingvinus/mydir1 /home/pingvinus/mydir2

директория mydir1 будет перемещена внутрь директории /home/pingvinus/mydir2 . То есть mydir1 будет в результате находиться по адресу /home/pingvinus/mydir2/mydir1 .

Переименование и перемещение

Если в качестве файла назначения указан новый путь и новое имя файла, то файл будет перемещен и переименован. Например, следующая команда перемещает файл myfile1.dat в директорию /home/pingvinus/dir и переименовывает его в myfile2.dat :

mv /home/pingvinus/myfile1.dat /home/pingvinus/dir/myfile2.dat

Переименование командой rename

Команда rename служит для массового (пакетного) переименования файлов. Она позволяет выполнять замену определенных символов или частей имени файла и использованием Perl-регулярных выражений.

Если вдруг в вашем дистрибутиве нет команды rename , то ее можно установить, выполнив (выберите соответствующую команду для вашего дистрибутива):

sudo apt install rename sudo yum install prename yaourt -S perl-rename

старое_имя — регулярное выражение или часть имени файла, которое нужно заменить на новое_имя .
новое_имя — задает результирующее имя файла (может быть регулярным выражением).

Основные опции:
-f — перезаписывать существующие файлы.
-n — вывести список файлов, которые будут переименованы и их новые имена, но не выполнять переименование.
-v — вывести список обработанных файлов.

Проще всего понять, как пользоваться данной командой, на примерах.

Изменение расширения файлов

Массово изменить расширение .html на .php у всех html-файлов.

По умолчанию rename не перезаписывает существующие файлы. Чтобы существующие файлы перезаписывались, используется опция -f :

Замена пробелов на подчеркивание

Заменить все символы пробелов в имени файлов на символ подчеркивания:

Конвертация имен файлов в строчные буквы

Конвертация имен файлов в прописные буквы

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

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

Например, мы хотим изменить расширение у файлов с .jpeg на .jpg . Используем опцию -n , чтобы просто вывести какие файлы будут переименованы:

Полное описание команд mv и rename можно получить, выполнив в терминале команды:

Массовое переименование с использованием программ

Для массового переименования файлов можно воспользоваться программами:

Источник

Оцените статью
Adblock
detector