Centos

恢復移入自身的目錄

  • March 24, 2021

通過 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 您的主文件系統。

引用自:https://unix.stackexchange.com/questions/640916