smo*_*ris 13 unix files filesystems bash unix-shell
在通用的现代 unix 环境(例如 GNU/Linux、GNU/Solaris 或 Mac OS X)中,是否有一种好方法可以确定特定绝对文件路径所在的挂载点和文件系统类型?
我想我可以执行mount命令并手动解析该命令的输出并将其与我的文件路径进行字符串比较,但在此之前我想知道是否有更优雅的方法。
我正在开发一个使用扩展属性的 BASH 脚本,并希望让它为各种文件系统和主机环境做正确的事(在可能的范围内)。
Mor*_*ven 19
该命令df(1)采用一个或多个参数,并将返回该文件或目录所在的安装点和设备,以及使用信息。然后,您可以使用路径或设备在mount -v或类似的输出中查找文件系统类型。
不幸的是,两者的输出格式df和mount与系统有关; 没有明显的标准,至少在 Solaris、NetBSD 和 Mac OS X 之间我可以看到。
小智 5
对于特定文件来说,就像这样简单
df -T "${FILE}" | awk '{print $2}' | tail -n1
Run Code Online (Sandbox Code Playgroud)