É possível ligar o arquivo a uma saída da linha de comando? [duplicado]

1

Eu quero criar um link simbólico ou um pipe ou qualquer outra coisa que possa ser usada no lugar de um arquivo. Eu quero que o pseudo-arquivo execute um comando e a saída desse comando deve se tornar o conteúdo desse arquivo

Algo parecido com isto (comando não real):

ln -s 'ssh x@y cat /etc/z.conf' /etc/z.conf

Basicamente, para que quando você cat /etc/z.conf , ele execute ssh x@y cat /etc/z.conf e conecte o canal stdout ao identificador de arquivo. Eu imagino, é possível fazer em um programa c, mas eu queria saber se isso poderia ser feito usando apenas ferramentas de linha de comando.

OBSERVAÇÃO : Eu NÃO estou procurando uma maneira de aliasar um comando. Eu quero que isso pareça um arquivo, como por exemplo: quando eu executo um serviço que lê /etc/z.conf , ele lê o conteúdo deste arquivo de forma transparente para si mesmo. Também: simplesmente copiar o arquivo não é uma solução aceitável

    
por galets 25.03.2015 / 20:17

1 resposta

1

Eu encontrei a solução:

#!/bin/bash

mkfifo /etc/z.conf

(
    while (true)
    do
        ssh x@y cat /etc/z.conf > /etc/z.conf
    done
) &
    
por 25.03.2015 / 20:59