
Каков наилучший способ узнать информацию о файловой системе файла?
Например, если у меня есть файл
/media/xyz/path/to/file.ext
И /etc/fstab
содержит
//server1/Share1 /media/xyz cifs option1=value1,...
Как определить, что файл находится на общем ресурсе Samba, имеет ли он локальный путь /path/to/file.ext
и с какими параметрами была смонтирована файловая система?
Является ли парсинг вывода mount
переносимого решения? Или parse findmnt
? Есть ли совместимый с POSIX способ добиться этого?
решение1
stat(1) — это переносимый способ узнать часть этой информации, например:
stat --file-system --format="%T" /media/xyz/path/to/file.ext
Все остальное очень специфично для ОС, в последних системах Linux вы можете легко использовать его findmnt --output
в скрипте.
решение2
Если я правильно понял вашу потребность, и объединив части предыдущих ответов, следующее может быть тем, что вам нужно. определить в скрипте (например, в вашем .bashrc)-
findpart ()
{
df -h $1|sed 1d|cut -d" " -f1|xargs findmnt -n
}
и затем вы можете запустить его по мере необходимости
findpart /foo/file.ext