查找有关文件的文件系统信息的最佳方法是什么。
例如,如果我有一个文件
/media/xyz/path/to/file.ext
并/etc/fstab
包含
//server1/Share1 /media/xyz cifs option1=value1,...
如何确定该文件位于 Samba 共享上、是否具有本地路径/path/to/file.ext
以及使用哪些选项挂载了文件系统?
mount
解析便携式解决方案的输出吗?还是解析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