我无意中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
)。