是否有一个通用的 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 和控制逻辑本地机器。
最佳答案
df -l <file>
如果文件或目录不是本地的,这将返回非零退出代码。
关于bash - 检测远程安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12256925/