检查文件夹是否是挂载的远程文件系统

Tot*_*tor 48 linux filesystems mount shell-script

检查给定文件夹是否位于 shell 脚本中已安装的远程 (nfs) 文件系统上的最佳方法(可靠、便携等)是什么?

我正在寻找一个看起来像这样的命令:

chk-remote-mountpoint /my/path/to/folder 
Run Code Online (Sandbox Code Playgroud)

Tot*_*tor 37

正如Stephane所说,“对此没有通用的 Unix 答案”。

我为我的问题找到的最佳解决方案:

df -P -T /my/path/to/folder | tail -n +2 | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

将返回文件系统类型,例如:nfsext3.

-T选项不是标准的,因此它可能不适用于其他 Unix/Linux 系统...

根据下面Gilles的评论:“这适用于任何非嵌入式 Linux,但不适用于 BusyBox、*BSD 等。”


fro*_*utz 19

你可以使用 GNU stat

%m 找出挂载点。

$ stat --format=%m /usr/src/linux
/usr/src
Run Code Online (Sandbox Code Playgroud)

%T (在文件系统模式下)找出文件系统的名称。

$ stat --file-system --format=%T /usr/src/linux
reiserfs
Run Code Online (Sandbox Code Playgroud)

因此,您知道/usr/src/linux,在我的系统上, 存储在挂载/usr/src并具有文件系统类型的文件系统中reiserfs

另请参阅以man stat供进一步参考。这是一个非常通用的命令,当您需要有关文件的信息并且不想退缩时几乎总是有用grep | awk


jay*_*ren 7

mount -l并使用grep, sed, 或awk查找引用相关目录的行。