Windows идет с инструментом для миграции настроек от предыдущих версий в XP, это называют "Файлами и Мастером Передачи Настроек", хотя я полагаю, что он изменил имя с тех пор. Конечно, если Вы зарегистрированы в домене Windows, затем Вы могли бы установить своего пользователя, чтобы иметь профиль роуминга.
Это - самый чистый способ сделать то, что Вы хотите:
mutt admin@example.org -a <(mysqldump mysqldumpoptions)
<()
оператор - то, что Вы просили; это создает FIFO (или/dev/fd) и разветвляет процесс и подключает stdout к FIFO. >()
делает то же, кроме подключений stdin к FIFO вместо этого. Другими словами, это делает весь материал mknod для Вас негласно; или на современной ОС, делает это еще лучшим способом.
Кроме, конечно, это не работает с дураком, это говорит:
/dev/fd/63: unable to attach file.
Я подозреваю, что проблема состоит в том, что дурак пытается искать в файле, который Вы не можете сделать на канале никакого вида. Поиск - вероятно, что-то как сканирование файла для выяснения, какой тип MIME это и какая кодировка могла бы работать (т.е., является ли файл 7 битами или 8 битами), и затем ищущий на начало файла на самом деле закодировать это в сообщение.
Если то, что Вы хотите отправить, является простым текстом, Вы могли всегда делать что-то вроде этого для создания его основным содержанием электронной почты вместо этого (не идеальный, но он на самом деле работает):
mysqldump mysqldumpoptions | mutt -s "Here's that mysqldump" admin@example.org
Я думаю, что Вы ищете, использование FIFO mknod
mknod /tmp/foo p
echo hello > /tmp/foo &
cat /tmp/foo
Отметьте, запись заблокируется, если не будет никакого процесса считывания.
например.
mknod /tmp/foo p
mysqldump mysqldumpoptions > /tmp/foo &
mutt -a /tmp/foo
Это должно быть вложение? Если это может появиться как тело сообщения (7-разрядный чистый ASCII, не содержит '.' на строке отдельно, и т.д.), то что-то вроде этого работало бы:
mysqldump mysqldumpoptions | дурак-s "сегодняшний mysql выводят" admin@example.org
Вы можете использовать имя файла /dev/stdin
с дураком, который будет читать из его stdin.
mysqldump mysqldumpoptions | mutt -a /dev/stdin admin@example.org
Гм, я просто попробовал это, и дурак жалуется:
/dev/stdin isn't a regular file.
/dev/stdin: unable to attach file.
О, хорошо. Я думаю, что это отвечает на Ваш вопрос хотя, с -a
дурак опции ожидает регулярный файл, который подразумевает не устройство или канал.
я могу пропускать что-то здесь, но почему дурак использования, когда это походит больше на задание для/usr/sbin/sendmail (или везде, где он живет на Вашем дистрибутиве)?
mysqldump mysqldumpoptions | sendmail admin@example.org
большая часть Unix, который MTAs обеспечивают команде/usr/sbin/sendmail, и они все понимают более или менее те же опции и работу более или менее тем же способом. почти во всех случаях Вы не должны заботиться, который конкретный MTA/реализацию sendmail Вы используете.
существует несколько других альтернатив также, включая mail/mailx
Дурак-a опция конкретно использует типы MIME, определенные в/etc/mime.types. Ни одни из виртуальных типов файлов, что Вы думали бы, не являются на самом деле допустимым зарегистрированным типом пантомимы, таким образом, я не думаю, что вложение дурака работало бы. Только для подтверждения концепции, можно попробовать пакет поддержки пантомимы установки (который обеспечивает двоичные файлы доступа к файлу пантомимы те, которые видят, редактируют, и т.д.), и работайте, видят против виртуального файла (скажите, что канал), Вы будете видеть, что это не распознает его. Основная проблема - то, что обычно виртуальный файл содержит содержание данных в памяти, не на диске, объект файла является просто указателем. Можно даже попробовать, переносят виртуальный файл с tar/gz и делают дурака счастливым, но я сомневаюсь, что Вы получите что-либо полезное из другого конца... :)