恢复移入其自身的目录

恢复移入其自身的目录

通过 shell 快捷方式,我不小心将一个目录移到了自身中,现在它似乎已经消失了。以下是直接从终端剪切粘贴的序列:

$ chmod a+x  load_test_set.sh ~/bin
$ mv !$ ~/bin
mv ~/bin ~/bin
$ ls ~/bin
ls: cannot access /home/jimk/bin: No such file or directory

(chmod 上的尾随“~/bin”是无意的并且没有被注意到,直到我把事情搞砸了)。我在 CentOS Linux 版本 7.8.2003 上的 tcsh 中执行了此操作。

这个目录会永远丢失吗?文件系统是否丢失了空间?我可以恢复目录和/或文件系统空间吗?

回复一些评论:

我运行“sudo find / -type l -name bin | less”,并得到:

/var/lib/docker/overlay2/882ace003168e1efea1a6f4c6575e101b625af233a25e9b9fb4cec724bb82ce9/diff/bin /var/lib/docker/overlay2/882ace003168e1efea1a6f4c6575e101b625af233a25e 9b9fb4cec724bb82ce9/diff/usr/lib/debug/bin /usr/lib/debug/bin /usr/share/gdb/auto -加载/bin/bin

并且这些都没有“bin”子目录。

而且,是的,我预计在尝试将目录移动到自身中时会出现错误...但是剪切粘贴是来自发生时的实际序列。所以它确实发生了并且没有产生错误。 (VMWare 的提及被删除,因为它是错误添加的)

答案1

如果~/bin是目录,您应该会遇到错误,例如:

mv: cannot move '/home/jimk/bin' to a subdirectory of itself, '/home/jimk/bin/bin'

既然~/bin已经消失了,我怀疑它是一个符号链接而不是一个目录。因此,您最终将符号链接移动~/bin到它指向的目录。

如果我是对的,您只需找出该目录在哪里即可。使用此命令例如:

find ~ -type l -name bin

(如果在自己的目录中没有找到则更find ~改为)find /

另一方面,如果您 100% 确定~/bin是一个目录并且它突然消失了,那么这是不正常的,我建议您对您的主文件系统进行 fsck。

相关内容