У меня есть каталог /home/user/oldname
и я хочу переименовать его к /home/user/newname
. Как я могу сделать это в терминале?
mv /home/user/oldname /home/user/newname
mv
может делать две работы.
Чтобы просто переименовать файл или каталог вводят это в Терминале:
mv old_name new_name
с пространством между старыми и новыми именами.
Для перемещения файла или каталога вводят это в Терминале.
mv file_name ~/Desktop
это переместит файл в рабочий стол.
Если каталог, необходимо добавить -R
перед именем каталога:
mv -R directory_name ~/Desktop
Это gvfs-move
команда также переименует файлы и каталоги.
gvfs-move /home/user/oldname /home/user/newname
Если Вы хотите переименовать каталог на своем уровне в файловой системе (например, Вы в своем корневом каталоге и хотите переименовать каталог, который находится также в Вашем корневом каталоге):
mv Directory ./NewNameDirectory
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 перемещается в каталог вместо того, чтобы заменить каталог?
gvfs-переименуйте переименует каталоги также. Это даст ошибку, если каталог с новым именем уже будет существовать. Единственное ограничение - то, что Вы не можете использовать путь с именем папки. Так
gvfs-rename /home/boo /home/boo-the-dog
не будет работать, но
cd /home
gvfs-rename boo boo-the-dog
будет работать. Не столь полезный как mv-T, но я читал в человеке, что это было предназначено для сетевых операций.