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 que o arquivo está em um compartilhamento Samba, que possui o caminho local /path/to/file.ext
e com quais opções o sistema de arquivos foi montado?
Está analisando a saída de mount
uma solução portátil? Ou analisar findmnt
? Existe uma maneira compatível com POSIX para conseguir isso?
df /path/to/file
deve mostrar a partição ou montagem./proc/mounts
. Existe uma maneira compatível com BSD / OSX para obter o mesmo?mount
etc., para obter o sistema de arquivos e as opções, etc. Ainda não tenho certeza da melhor maneira de encontrar essas informações em * BSD e OSX. Não tive tempo de trabalhar na biblioteca que exige isso, mas receberei feedback assim que o fizer. Pelo que vi,mount -P
parece bastante confiável no Linux / BSD.Respostas:
O stat (1) é uma maneira portátil de descobrir algumas dessas informações, por exemplo:
Todo o resto é muito específico do sistema operacional; nos sistemas Linux recentes, você pode facilmente usar
findmnt --output
em um script.fonte
stat
também é específico do sistema operacional.se eu entendi sua necessidade corretamente e combinando bits de respostas anteriores, o seguinte pode ser o que você precisa. define no script (por exemplo, no seu .bashrc) -
e então você pode executá-lo conforme necessário
fonte
findmnt
não precisa de tudo isso, ele pode fazer isso por si só