使用 mv 创建文件夹

使用 mv 创建文件夹

所以我想将文件夹名称从大写字母更改为小写字母,所以我这样做了

mv FOLDER folder

为什么我不需要创建新文件夹?我不应该收到类似这样的错误吗?

folder does not exist

您无法复制到不存在的文件夹中,那么为什么可以移动到其中呢?

答案1

以下两者之间存在差异:

mv oldfolder/* newfolder

当 newfolder 不存在时,并且:

mv oldfolder newfolder

其中 newfolder 不存在。

第一个给出:

mv: target `newfolder' is not a directory

而第二个将把 oldfolder 重命名为 newfolder。

答案2

在 UNIX/Linux 中,“mv” 会执行以下两项操作之一:

  1. 将文件或目录从当前位置(在一个目录中)移动到新位置(在另一个目录中)。
  2. 重命名文件或目录,而不将其移动到新位置。

在第二种情况下,重命名目录不会创建新目录,它只会更改已存在目录的名称。

实际上,您的示例执行了两种不同的操作,具体取决于“folder”是否已作为目录存在。如果存在,mv 的工作方式与上述第一种情况相同,即将“FOLDER”移动到“folder”目录中,因此现在为“folder/FOLDER”。另一方面,如果“folder”尚不存在,它只会重命名 FOLDER。

是的,这可能会相当令人困惑!

答案3

在 UNIX 中文件夹是特殊文件

当你问mv src dstmv获取文件src并尝试将其移动到 dst。现在适用几条规则。它们按顺序执行,第一个匹配的规则即被应用:

  1. 如果dst不存在,则它将是目标名称(无论类型如何src
  2. 如果dst已经存在并且是一个目录,它将被视为小路而不是目的地名称。因此该命令将被理解为mv src dst/srcsrc被移动里面 dst(a 的最终路径是dst/src
  3. 如果dst已经存在并且不是目录,则仅当src不是目录。

答案4

mv也是一个重命名命令。您正在将一个文件夹重命名为新名称。

相关内容