
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/fstab
conté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.ext
e com quais opções o sistema de arquivos foi montado?
A análise da saída de mount
uma 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 --output
em 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