尝试使用移动(mv)命令,但出现“没有这样的文件或目录”

尝试使用移动(mv)命令,但出现“没有这样的文件或目录”

我在使用 move 命令时遇到了麻烦。我创建了两个目录,分别称为CatDog。在 下Cat我创建了一个名为 的文件puppies

当我尝试puppies从移动Cat到 时,Dog我得到No such file or directory。但是,当我返回 和cd Cat和时ls -a,它显示puppies。然后,我返回到我的主目录,ls -a、 和CatDog被列出。

那么我做错了什么?

答案1

处理文件时需要了解的一些有用的事项:

  • Linux 是区分大小写(因此dogDogDOG都是不同的文件)
  • 命令如何工作取决于你在哪里在文件系统中
  • 根据您所在的位置,您可以使用相对的或者绝对路径名

因此,如果您在父目录中Cat,则Dog可以使用相对路径名,如下所示:

mv Cat/puppies Dog

一个容易犯的错误是输入以/

mv /Cat/puppies /Dog

这将给出一个no such file or directory错误,因为/是根目录,并且 下没有CatDog目录/。看一下:

ls /

造成这种混淆的原因之一是系统使用了一个方便的快捷方式来表示用户的主目录,因此,您可以在用户主目录中/home/username/somefile键入~/somefile而不是 的绝对路径名,因此,假设和位于用户主目录的顶部,您可以使用来从文件系统中的任何位置移动到somefileCatDogpuppiesCatDog

mv ~/Cat/puppies ~/Dog

使用相对路径名的几个示例

如果你在目录中Cat,你可以puppies像这样移动

mv puppies ../Dog

..指定当前工作目录的父目录

如果你在目录中,Dog你可以像这样移动小狗

mv ../Cat/puppies .

.指定当前工作目录

要了解您所在的位置,通常可以查看提示,但为了确保万无一失,您可以随时检查代表pwd“打印工作目录”的命令

答案2

我在这里使用的命令是(假设它们位于您的主目录的顶层):

mv ~/Cat/puppies ~/Dog/puppies 

如果目录puppies包含更多目录,则需要添加递归标志-r,这将使命令看起来像:

mv -r ~/Cat/puppies ~/Dog/puppies 

请注意,该命令区分大小写。

相关内容