У меня есть каталог, /home/user/oldname
и я хочу переименовать его в /home/user/newname
. Как я могу сделать это в терминале?
mv
или rename
.
У меня есть каталог, /home/user/oldname
и я хочу переименовать его в /home/user/newname
. Как я могу сделать это в терминале?
mv
или rename
.
Ответы:
mv /home/user/oldname /home/user/newname
No such file or directory
. Чтобы избежать этого, сделайте что-нибудь подобное mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder
.
--no-target-directory
( -T
) , чтобы не рассматривать newname
как целевой каталог.
mv
может сделать две работы.
Чтобы просто переименовать файл или каталог, введите это в Терминале:
mv old_name new_name
с пробелом между старым и новым именами.
Чтобы переместить файл или каталог, введите это в Терминале.
mv file_name ~/Desktop
это переместит файл на рабочий стол.
Если это каталог, который вы должны добавить -R
перед именем каталога:
mv -R directory_name ~/Desktop
mv
на Ubuntu из ядра GNU Coreutils. УДАЛЕНО у этого нет никакой -R
опции, и это не необходимо при перемещении каталога.
-T
. Смотрите ответ @ bmaupin за его поведение.
mv -T /home/user/oldname /home/user/newname
Это переименует каталог, если место назначения не существует или если оно существует, но оно пустое. В противном случае это даст вам ошибку.
Если вы сделаете это вместо этого:
mv /home/user/oldname /home/user/newname
Произойдет одно из двух:
/home/user/newname
не существует, он будет переименован /home/user/oldname
в/home/user/newname
/home/user/newname
существует, то он будет двигаться /home/user/oldname
в /home/user/newname
, т.е./home/user/newname/oldname
Источник: Как решить, что mv перемещается в каталог, а не заменяет каталог?
mv -T $PWD/analisys $PWD/Analisys
возвращается mv: '/Users/sixtykeys/Projects/murphy/tmp/analisys' and '/Users/sixtykeys/Projects/murphy/tmp/Analisys' are the same file
. Я работал над этим, используя промежуточное имя (т.е. analisys_
).
Эта gvfs-move
команда также переименует файлы и каталоги.
gvfs-move /home/user/oldname /home/user/newname
gvfs-rename также переименует каталоги. Это выдаст ошибку, если каталог с новым именем уже существует. Единственным ограничением является то, что вы не можете использовать путь с именем папки. Так
gvfs-rename /home/boo /home/boo-the-dog
не сработает, но
cd /home
gvfs-rename boo boo-the-dog
будет работать. Не так полезно, как mv -T, но я прочитал в человеке, что он предназначен для сетевых операций.