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

8

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 do Samba, se ele tem 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 de uma solução portátil? Ou parse findmnt ? Existe uma maneira compatível com POSIX para conseguir isso?

    
por kba 12.02.2016 / 18:25

2 respostas

1

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 facilmente usar findmnt --output em um script.

    
por 22.02.2016 / 12:25
0

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) -

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

e, em seguida, você pode executá-lo conforme necessário

findpart /foo/file.ext
    
por 10.03.2016 / 10:03

Tags