微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – mv删除了我的目录.为什么?

我试图纠正目录上的拼写,发出一个mv命令,目录现在已经消失.我想了解 – 特别是 – 发生了什么.

这是我跑的命令:

mv micheal_franti_theme/ michael_franti_theme/

我明白不应该包括斜杠:我快速移动并使用自动完成.

该命令运行时没有任何错误或警告.我尝试将find用于新旧拼写,但都没有返回任何结果.所以发生了什么事? mv实际上做了什么?是否有机会恢复目录及其内容

CentOS 6.5上的ext4; mv版本8.4

附加信息

不知道为什么这会降低选票.

一个名为“micheal_franti_theme”的目录.我跑了上面的命令,然后跑了ls.没有更多目录.

当我运行该命令时,文件系统上的任何位置都没有名为“michael_franti_theme”的目录.

从命令中可以看出,上下文位于同一个子目录中,因此mv刚刚更新了inode表(与文件系统之间的复制相比).

我运行了以下内容

sudo find / -name micheal_franti_theme

没有结果.目录消失了

此问题中发布的所有命令都是直接从命令提示符复制的.

十多年来我一直在使用Linux.我以前从未见过这种情况,所以我将它带到了serverfault.

实际结果早已从回滚缓冲区中消失,但这里是历史记录中的相关行:

1097  ls
1098  mv micheal_franti_theme/ michael_franti_theme/
1099  ls
1100  find / -name michael_franti_theme 2>/dev/null
1101  find / -name micheal_franti_theme 2>/dev/null
1102  sudo find / -name michael_franti_theme
1103  sudo find / -name micheal_franti_theme

解决方法:

我可以让该命令无错误运行的唯一方法是两个目录都已存在.或者,如果只存在源名称.

如果两个目录都存在,那么该命令的作用是将一个目录移动到另一个目录中.所以,你现在将拥有一个名为michael_franti_theme / micheal_franti_theme的目录.

如果仅存在源名称,则该命令的作用是简单重命名.所以你有一个名为michael_franti_theme的目录.

在这两种情况下,重命名后都会存在名为michael_franti_theme的目录.如果管理此系统的人不止一个,则可以在mv命令之后但在运行任何ls或其他命令之前重新命名该目录以查找重命名的目录.

您当前的工作目录也可能不是您认为的那样,并且文件位于您现在正在查看的文件系统中的其他位置.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。