Joz*_*zef 10 linux filesystems virtual-file
在Linux中创建"虚拟"文件的最简单方法是什么,允许对其进行读取操作,总是返回某个特定命令的输出(每次从中读取文件时运行)?因此,每次读取操作都会导致执行命令,捕获其输出并将其作为文件的"内容"传递.
这是我在下面复制的一个很好的答案。
基本上,命名管道可以让您在脚本中完成此操作,而Fuse让您可以在Python中轻松完成此操作。
您可能正在寻找命名管道。
mkfifo f
{
echo 'V cebqhpr bhgchg.'
sleep 2
echo 'Urer vf zber bhgchg.'
} >f
rot13 < f
Run Code Online (Sandbox Code Playgroud)
写入管道不会启动监听程序。如果要循环处理输入,则需要保持监听程序运行。
while true; do rot13 <f >decoded-output-$(date +%s.%N); done
Run Code Online (Sandbox Code Playgroud)
请注意,写入管道的所有数据都会被合并,即使有多个进程写入。如果多个进程正在读取,则只有一个进程获取数据。因此管道可能不适合并发情况。
命名套接字可以处理并发连接,但这超出了基本 shell 脚本的能力。
最复杂的一端是自定义文件系统,它允许您设计和安装一个文件系统,其中每个文件open系统write、等等触发程序中的一个函数。最少的投资是数十行重要的编码,例如Python。如果只想在读取文件时执行命令,可以使用scriptfs或fusionflt。
| 归档时间: |
|
| 查看次数: |
3150 次 |
| 最近记录: |