Como obter informações do sistema de arquivos para um arquivo específico?

Como obter informações do sistema de arquivos para um arquivo específico?

Qual é a melhor maneira de descobrir informações do sistema de arquivos sobre um arquivo.

Por exemplo, se eu tiver um arquivo

/media/xyz/path/to/file.ext

E /etc/fstabcontém

//server1/Share1 /media/xyz cifs option1=value1,...

Como posso determinar se o arquivo está em um compartilhamento Samba, se possui o caminho local /path/to/file.exte com quais opções o sistema de arquivos foi montado?

A análise da saída de mountuma solução portátil? Ou analisar findmnt? Existe uma maneira compatível com POSIX de conseguir isso?

Responder1

stat(1) é uma maneira portátil de descobrir algumas dessas informações, por exemplo:

stat --file-system --format="%T" /media/xyz/path/to/file.ext

Todo o resto é muito específico do sistema operacional; em sistemas Linux recentes, você pode usar facilmente findmnt --outputem um script.

Responder2

se entendi sua necessidade corretamente e combinando bits de respostas anteriores, o seguinte pode ser o que você precisa. defina no script (por exemplo, no seu .bashrc)-

findpart ()
{
df -h $1|sed 1d|cut -d" " -f1|xargs findmnt -n
}

e então você pode executá-lo conforme necessário

findpart /foo/file.ext

informação relacionada