通过 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。