Preciso de uma maneira leve e independente de plataforma de detectar o tipo de montagem do meu CWD. Especificamente, preciso determinar se meu CWD está em uma montagem de SSHFS, NFS, CIFS, SMB ou armazenamento em bloco local.
Preciso fazer isso no Mac OSX 10.6, 10.7 e RHEL5 (no mínimo).
Existe a possibilidade de usar o df, mas o df se comporta de maneira bastante diferente nessas duas plataformas. Além disso, eu teria que CLI raspar sua saída com awk, que enquanto praticável é ... frágil.
Esta informação deve estar disponível em algum nível. Existe uma ferramenta que eu desconheço que poderia fornecer essas informações para mim?
fonte
Você pode usar o GNU stat no Linux:
fonte
No Linux, existe o findmnt disponível desde o util-linux 2.18.
fonte
Ainda não testei, mas
df -P
deve se comportar da mesma maneira na maioria das plataformas.Isso funciona no Linux.
Ou dividi-lo em funções reutilizáveis:
E chamando a função:
Pode ser reescrito para ser um pouco mais rápido usando
sed
orawk
, mas dessa maneira é provavelmente mais fácil de ler.Se isso não funcionar, você pode tentar algo semelhante, mas usando
/etc/mtab
em vez da saída demount
.fonte
P
indf -P
é para POSIX, portanto, ele deve se comportar da mesma maneira. No entanto, ir do caminho do sistema de arquivos até o ponto de montagem é mais complicado.