我想创建符号链接、管道或其他可以用来代替文件的东西。我希望该伪文件执行命令,并且该命令的输出应成为该文件的内容
像这样的东西(不是实际的命令):
ln -s `ssh x@y cat /etc/z.conf` /etc/z.conf
基本上,这样当您运行时cat /etc/z.conf
,它就会运行ssh x@y cat /etc/z.conf
并将标准输出管道连接到文件句柄。我想,可以在 ac 程序中完成,但我想知道这是否可以仅使用命令行工具来完成。
笔记:我不是在寻找给命令别名的方法。我希望它看起来像一个文件,例如:当我运行一个读取 的服务时/etc/z.conf
,它会透明地读取该文件的内容。还:简单地复制文件不是可接受的解决方案
答案1
我找到了解决方案:
#!/bin/bash
mkfifo /etc/z.conf
(
while (true)
do
ssh x@y cat /etc/z.conf > /etc/z.conf
done
) &