Como remover vários links para o mesmo diretório?

Como remover vários links para o mesmo diretório?

Eu tenho uma instalação do lxd quebrada e quero excluí-la completamente e começar de novo, mas há um problema. /var/lib/lxd/devices/desktop contém vários subdiretórios vinculados a diretórios em outros lugares do sistema de arquivos (mesmo em unidades diferentes), como

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

Por exemplo, se eu excluir um arquivo de disk.thor.mnt-thor, ele também será excluído de/home/storage (ambos os diretórios apontam para o mesmo local). disk.usbdrive.mnt-usbdrive mostra todo o conteúdo da minha unidade USB montada em/mnt/usbdrive. Ambos os diretórios mostram seu conteúdo e as modificações em um são refletidas no outro.

Mas agora, se eu quiser excluir esses diretórios, tenho um problema, porque só quero remover esses diretórios do lxd, não os diretórios reais para os quais eles apontam e não seu conteúdo. Tentei usar unlink, mas não funciona em diretórios.

Responder1

Experimente umount-os.

A camada VFS no Linux permite que arquivos e diretórios sejam "montados em ligação" em outro local. O resultado realmente parece um hardlink, mas na verdade não existe no disco – as montagens de ligação estão na memória, assim como as montagens normais.

Este recurso também significa que um único sistema de arquivos pode ser montado em vários locais ao mesmo tempo. Por exemplo, o mesmo /dev/sda1poderia ser montado em/mnt/usbdrive esobre /var/lib/lxd/mnt-usbdrive.

Todas essas montarias mágicas podem ser vistas executandofindmntou mount.

(O Windows e o FreeBSD também possuem recursos semelhantes, por exemplo, nullfs.)

informação relacionada