恢復移入自身的目錄
通過 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/882ace003168e1efea1a6f4c6575e101b625af233a25e9b9fb4cec724bb82ce9/diff/usr/lib/debug/bin /usr/lib/debug/bin /usr/share/gdb/auto -載入/bin/bin
並且這些都沒有“bin”子目錄。
而且,是的,我本以為嘗試將目錄 mv 放入自身時會出錯……但是剪切-粘貼是從實際序列中發生的。所以它確實發生了並且沒有產生錯誤。(提到 VMWare 被刪除,因為它是錯誤添加的)
如果
~/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 您的主文件系統。