如何删除指向同一目录的多个链接?

如何删除指向同一目录的多个链接?

我的 lxd 安装已损坏,我想将其完全删除并重新开始,但出现了问题。/var/lib/lxd/devices/desktop 包含一堆子目录,这些子目录链接到文件系统中其他位置的目录(甚至在不同的驱动器上),例如

drwxr-xr-x 28 karl   karl       4096 Apr 11 15:40 disk.shareName.home-karl
drwxr-xr-x  4 nobody nogroup    4096 Apr 14 12:07 disk.thor.mnt-thor
drwxr-xr-x  2 root   root       4096 Mar 29 14:02 disk.usbdrive.mnt-usbdrive

例如,如果我从 disk.thor.mnt-thor 中删除一个文件,它也会从 /home/storage 中删除(两个目录指向同一个位置)。disk.usbdrive.mnt-usbdrive 显示挂载到 /mnt/usbdrive 的 USB 驱动器的所有内容。两个目录都显示其内容,并且一个目录中的修改会反映在另一个目录中。

但是现在如果我想删除这些目录,就会遇到问题,因为我只想删除 lxd 下的那些目录,而不是它们指向的实际目录,也不是它们的内容。我尝试使用unlink,但它对目录不起作用。

答案1

尝试umount-ing 它们。

Linux 中的 VFS 层允许将文件和目录“绑定挂载”到另一个位置。结果确实看起来像硬链接,但实际上并不存在于磁盘上 - 绑定挂载与常规挂载一样位于内存中。

此功能还意味着单个文件系统可以同时挂载到多个位置。例如,/dev/sda1可以挂载到/mnt/usbdrive /var/lib/lxd/mnt-usbdrive

所有这些魔法坐骑都可以通过运行findmnt或者mount

(Windows 和 FreeBSD 也有类似的功能,例如 nullfs。)

相关内容