如何通过命令行重命名目录?


Answers:


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


很酷的文章。这就是重点。
2011年

76
如果新名称已经是现有目录,则将无法使用。而是将旧目录移到新目录中。
cxrodgers 2014年

9
如果目录名与大写字母相同,则会得到No such file or directory。为了避免这种情况,请执行以下操作mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder
DutGRIFF 2014年

9
@cxrodgers:pass --no-target-directory-T,以避免将其newname视为目标目录。
jfs

123

mv 可以做两个工作。

  1. 它可以移动文件或目录
  2. 它可以重命名文件或目录

要仅重命名文件或目录,请在终端中输入以下内容:

mv old_name new_name 

在新旧名称之间留有空格。

要移动文件或目录,请在终端中输入。

mv file_name ~/Desktop 

它将文件移动到桌面。

如果是目录,则应-R在目录名称之前添加:

mv -R directory_name ~/Desktop

3
mv在Ubuntu上来自GNU coreutils。AFAICT它没有-R选项,移动目录时也没有必要。
arielf

-r甚至不起作用
user1735921 2016年

正确的选项是-T。有关其行为,请参见@bmaupin的答案
计时码表

39
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移入目录而不是替换目录?


如果要在不区分大小写的文件系统中大写目录名(例如在MacOS上),则不起作用。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_)来解决此问题。
大教堂

由于文件系统的限制,该命令可能未成功执行,但是从另一个角度来看,该命令已成功说明了您的意图(重命名目录,而不移动目录):)
bmaupin

你有尝试过吗?
Mahmoud S. Marwad

5

如果要在文件系统中重命名目录(例如,您在主目录中,并且想重命名也在主目录中的目录):

mv Directory ./NewNameDirectory


3

gvfs-rename也将重命名目录。如果使用新名称的目录已经存在,则会出现错误。唯一的限制是您不能使用带有文件夹名称的路径。所以

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

将不起作用,但是

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

将工作。不如mv -T有用,但我读到那个人说它是用于网络操作的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.