我试图纠正目录上的拼写,发出一个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或其他命令之前重新命名该目录以查找重命名的目录.