Verifique se uma pasta está em um disco compartilhado ou local?

2

Como posso verificar se alguma pasta no Linux está em um disco compartilhado ou em um disco local?

    
por user710818 20.09.2011 / 19:54

1 resposta

2

Você pode dizer se uma pasta está em um disco local procurando o tipo de sistema de arquivos . A primeira parte da resposta é encontrar o sistema de arquivos que contém a pasta. Para fazer isso, você precisa encontrar o sistema de arquivos usando o campo st_dev da stat informação para a pasta . (Você também pode fazer isso verificando o caminho da pasta, mas então precisa verificar cada elemento do caminho para links simbólicos).

Você pode fazer referência cruzada ao campo st_dev com a tabela de montagem em /proc/mounts usando getmntent_r() . Há um exemplo disso em uma resposta anterior . O campo mnt_type fornecerá o texto do tipo de sistema de arquivos, e você poderá comparar a sequência com uma lista de sistemas de arquivos de rede.

Você pode informar mais informações sobre os sistemas de arquivos FUSE observando o campo mnt_fsname , mas existem muitos sistemas de arquivos FUSE. Você pode querer tratar todos eles como armazenamento de rede. Você terá que fazer sua própria chamada sobre sistemas de arquivos em cluster, como o GFS.

    
por 20.09.2011 / 23:00

Tags