我不知道这是否可能,但我不知道如何研究这个概念。是否可能,如果我该如何...
创建一个设备文件(即/dev/remoteclip
),当写入或读取时,该文件将生成程序或 shell 脚本?
用例是将文本共享到远程剪贴板。例如,我看到我的 Linux 盒子旁边有一台 Mac。按照目前的情况,我可以执行以下操作来共享内容:
$ ssh macbox "pbcopy" < myFile
$ ssh macbox "pbpaste" > myFile
我想知道 Linux 文件系统上是否有可能有一个设备或 FIFO,当您写入它时,它会执行 ssh 命令:
$ cat myFile >> /dev/macbook-clipboard
$ cat /dev/macbook-clipboard > myFile
这样编辑器和其他程序就可以简单地写入设备/FIFO。
这更多的是关于这是否可能以及如何实现的学习练习。这不是必需的,而且其优点可能纯粹是学术性的,然后在典型的工作流程中很有用。
答案1
我找到了一种方法来实现这一点。它需要创建一个后台进程来持续从 FIFO 中读取数据。例如:
$ mkfifo hopper
$ while :; do ssh macbox "pbcopy"; done < hopper &
$ cat myFile >> hopper
(谢谢这个答案)
现在我不完全理解这一点,但我愿意猜测< hopper
周围的 while 循环会阻塞循环,这就是为什么 CPU 不会出现煎鸡蛋并且当没有数据被输送到 FIFO 时的原因不是闲置的零散 SSH 会话。
所有这些 *Unix 工具的深思熟虑和前瞻性给我留下了深刻的印象。老实说,我不明白为什么学校要教授这一点,也不明白为什么现代软件开发都是为了重新发明这些古老的轮子。惊人的!
结束以上过程使用kill %1
。