2

是否有一个通用的 bash shell 变量或通用 Linux 命令可以可靠地指示给定目录或文件是否位于远程文件系统上——无论是 NFS、SSHFS、SMB 还是任何其他远程安装的文件系统?

上下文...
这是一个仅 root 访问、单用户、多主机 Linux 开发“实验室”,使用 SSH 和 SSHFS 对系统进行半无缝松散耦合。每个主机上的相关目录结构是...

    /0
    /0/HOST1
    /0/HOST2
    /0/HOST3
    /bin
    /boot
      :

/0 中的目录是挂载到指定主机上的“/”的 SSHFS。“Host1”等是为每个主机命名的挂载点目录。

我当然可以建立一个环境变量,比如......

    REMOTE_FS=/0

...并测试以“/ 0”开头的目录名。但是,这不是很便携或可靠。

显而易见
的问题......已经努力使它无缝,为什么我想知道访问非本地的东西时?

答案...
浏览已挂载的文件系统会将所有处理负载放在启动主机上。我想知道何时可以选择使用 SSH 而不是 SSHFS 将后台处理(ls、grep、awk 等)卸载到远程(通常更强大)主机,只留下 GUI 和控制逻辑本地机器。

4

1 回答 1

2
df -l <file>

如果文件或目录不是本地的,这将返回非零退出代码。

于 2012-09-04T04:58:15.710 回答