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