mv 命令后没有绝对路径的文件位置

mv 命令后没有绝对路径的文件位置

我无意中mv在文件夹中运行命令来重命名文件。但我忘记指定绝对路径(我刚才指定了mv old_name new_name)。现在文件不见了。知道这些文件在哪里吗?

谢谢你的帮助。

答案1

如果您没有提供任何目录标识(例如 .. 或 ../..),它们将位于同一目录中。

因此mv oldFile newFile留在同一个目录中(基本上是重命名它),

笔记-i:如果 newFile 已经存在,则您刚刚覆盖了它 - 除非您提供参数,否则 mv 不会在执行此操作之前询问。

mv oldFile ../newFile将其移动到父目录,

mv oldFile ./existingSubDirectory/newFile将其移动到具有 newFile 名称的目录中,

mv oldFile -p ./newSubDirectory/newFile创建名为“newSubDirectory”的新子目录并将 newFile 放入其中。

您可以组合起来执行一些非常奇怪(并且通常毫无意义)的目录遍历(例如mv oldFile ././././../../dev/null您真正想要的),但意义很小。

答案2

如果您没有指定完整路径,它们将位于相对于您工作的路径的位置。

如果您在用户目录 ( /home/user) 中并mv myfile newfile在该目录中运行,则文件将重命名为newfile。如果存在,则会被覆盖。如果您指定了路径的一部分 ( mv myfile something/newfile) 并且文件夹不存在,则会收到错误。如果您提供了-p该文件夹,something则会创建它。

如果您知道名称,您可以使用find或其他实用程序来查找文件(在 Debian 上,您可以使用locate)。

相关内容