Rediriger la sortie d'une commande vers un fichier (commande)

D'écrire la sortie standard d'une commande (dans ce cas, echo hi) vers un fichier, vous pouvez le faire:

echo hi > outfile

Je voudrais une commande à la place d'une redirection ou d'un tuyau, de sorte que je n'ai pas besoin d'invoquer un shell. C'est finalement pour une utilisation avec Ansible, qui appelle python subprocess.POpen.

Je suis à la recherche d':

stdout-to-file outfile echo hi

tee rend la copie stdout vers un fichier assez facile, mais il accepte l'entrée standard stdin, pas une commande séparée.

Est là un lieu commun, un portable de commande qui fait cela? Il est assez facile d'en écrire un, bien sûr, mais ce n'est pas la question. En fin de compte, Ansible, je veux faire:

command: to-file /opt/binary_data base64 -d {{ base64_secret }}

Au lieu de:

shell: base64 -d {{ base64_secret }} > /opt/binary_data

Edit: à la Recherche pour une commande disponible sur RHEL 7, Fedora 21

Je ne peux pas penser à une commande comme celle-ci.
Vous devez spécifier quel système d'exploitation que vous utilisez, car qui va faire une différence à ce que les commandes sont disponibles.
Il y a un portable de commande qui fait cela avec une syntaxe légèrement différente. Il est appelé un shell, et la syntaxe est la suivante: sh -c ' > outfile echo hi'
En d'autres termes, au lieu de "stdout vers un fichier", il suffit d'écrire ">"
Sauf ensuite, vous avez la responsabilité de la traduction de la commande en une chaîne de caractères... Mais il peut ne pas être réellement en cas de bord, voyez-vous pourquoi c'est effrayant, et pourquoi chercher une meilleure alternative?

OriginalL'auteur ToBeReplaced | 2015-02-28