Как удалить несколько ссылок на один и тот же каталог?

Как удалить несколько ссылок на один и тот же каталог?

У меня повреждена установка 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 показывает все содержимое моего usb-накопителя, смонтированного в /mnt/usbdrive. Оба каталога показывают его содержимое, и изменения в одном из них отражаются в другом.

Но теперь, если я хочу удалить эти каталоги, у меня проблема, потому что я просто хочу удалить эти каталоги в lxd, а не фактические каталоги, на которые они указывают, и не их содержимое. Я пробовал использовать unlink, но это не работает с каталогами.

решение1

Попробуйте umountих -ing.

Слой VFS в Linux позволяет "привязывать-монтировать" файлы и каталоги к другому месту. Результат действительно выглядит как жесткая ссылка, но на самом деле не существует на диске – привязываемые монтирования находятся в памяти, как и обычные монтирования.

Эта функция также означает, что одна файловая система может быть смонтирована в нескольких местах одновременно. Например, она /dev/sda1может быть смонтирована в/mnt/usbdrive ина /var/lib/lxd/mnt-usbdrive.

Всех таких магических ездовых животных можно увидеть, запустивfindmntили mount.

(Windows и FreeBSD также имеют схожие функции, например, nullfs.)

Связанный контент