Вопрос Как переименовать каталог через командную строку?


У меня есть каталог /home/user/oldname и я хочу переименовать его в /home/user/newname, Как я могу это сделать в терминале?


473
2017-08-08 16:58


происхождения


Смотрите также: Как переместить каталог - kenorb
Использовать всегда mv или rename, - John Strood


ответы:


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

620
2017-08-08 17:10



Связанный brighthub.com/computing/linux/articles/20667.aspx - N.N.
Прохладный статьи. Это точно. - Rafał Cieślak
Это не будет работать, если новое имя уже является существующим каталогом. Вместо этого он переместит старый каталог внутри нового. - cxrodgers
Если имя каталога совпадает с капитализацией, вы получите No such file or directory, Чтобы избежать этого, сделайте что-то вроде mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder, - DutGRIFF
@cxrodgers: проходить --no-target-directory (-T), чтобы избежать лечения newname как целевой каталог. - jfs


mv может выполнять две работы.

  1. Он может перемещать файлы или каталоги
  2. Он может переименовывать файлы или каталоги

Чтобы просто переименовать тип файла или каталога в Terminal:

mv old_name new_name 

с пространством между старыми и новыми именами.

Чтобы переместить файл или тип каталога в Terminal.

mv file_name ~/Desktop 

он переместит файл на рабочий стол.

Если это каталог, который вы должны добавить -R перед именем каталога:

mv -R directory_name ~/Desktop

104
2018-04-21 13:58



mv на Ubuntu - GNU coreutils. AFAICT не имеет -R а также при перемещении каталога. - arielf
-r даже не работает - user1735921
Правильный вариант -T, См. @ Bmaupin's ответ за его поведение. - chronometric


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 перемещается в каталог, а не заменяет каталог?


27
2018-04-27 18:31





Эта gvfs-move команда также переименует файлы и каталоги.

gvfs-move /home/user/oldname /home/user/newname

4
2018-04-21 05:26





Если вы хотите переименовать каталог на своем уровне в файловой системе (например, вы находитесь в своем домашнем каталоге и хотите переименовать каталог, который также находится в вашем домашнем каталоге):

mv Directory ./NewNameDirectory

4
2017-07-12 13:26





gvfs-rename также переименует каталоги. Это приведет к ошибке, если каталог с новым именем уже существует. Единственное ограничение - вы не можете использовать путь с именем папки. Так

gvfs-rename /home/boo /home/boo-the-dog 

не будет работать, но

cd /home 
gvfs-rename boo boo-the-dog 

будет работать. Не так полезно, как mv -T, но я прочитал в нем, что он предназначен для сетевых операций.


1
2017-11-29 07:58