Как смолить фио - PullRequest
       27

Как смолить фио

3 голосов
/ 01 декабря 2010

Я хочу оценить вывод программы, которая пишет в stdout и fifo при fd = 3.Вот моя первая попытка:


#!/bin/bash

#Create fd=3
exec 3> >(cat)

#Start the tar
tar -cvzf ha.tgz /dev/fd/1 /dev/fd/3

#Write data
echo stdout
echo 'fd=3'>&3

#close
exec 3>&-

Он создал ha.tgz и его содержимым были / dev / fd / 1 и / dev / fd / 3.Однако когда я извлекаю файлы, он в основном создает символические ссылки на / dev / fd / 1 и / dev / fd / 3 (что не работает).Я надеялся, что эти файлы будут обычными файлами, содержание которых будет таким же, как и в сценарии.Есть ли способ сделать это?

Ответы [ 3 ]

3 голосов
/ 01 декабря 2010

Есть ли способ сделать это?

Нет.Записи в / dev не являются реальными файлами, это всего лишь файловые интерфейсы для драйверов устройств.Если вы хотите обычные файлы, используйте обычные файлы.

2 голосов
/ 21 июня 2016

С zip он должен работать так:

zip -FI MyZipFile /dev/fd/1 /dev/fd/3

1 голос
/ 02 декабря 2010

Просто передайте содержимое fifo в gzip и в файл.

...