3

Некоторые программы выводят свои двоичные данные прямо на стандартный stdout . Вот некоторые примеры:

tar -c file.png
dd  if=file.png

Ну, я вижу, что вывод может быть перенаправлен в файл. Но эти программы уже принимают имена выходных файлов в качестве аргументов. Итак, следующие команды дадут одинаковые результаты:

tar -c file.png  > file.tar
tar -c file.png -f file.tar

dd if=file.png  > copy.png
dd if=file.png of=copy.png

Для каких еще целей можно использовать двоичный вывод из stdout ?

2 ответа2

7

Для строительства трубопроводов, очевидно. Самым большим преимуществом является то, что вы можете избежать создания временных файлов:

(Для этого примера предположим, что старая версия tar не имеет опций сжатия -J или -I .)

tar -c foo/*.png | xz -9 | uuencode "foo.tar.xz" | mail -s "Sending foo" musa
  • Теперь представьте, если бы вам пришлось использовать -f и прочее ... у вас был бы VMS.

    tar -cf foo.tar foo/*. png xz -9 -o foo.tar.xz foo.tar uuencode -o foo.uue foo.tar.xz mail -a foo.uue -s "Отправка foo" musa rm foo .tar foo.tar.xz foo.uue
    

Вы можете делать конвейеры по сети:

ssh storageserver "cd ~/foo && tar -c bar" | pv | tar -x

curl https://example.com/secret.gpg | ssh mylaptop "gpg --decrypt" > secret.zip

Больше примеров:

curl http://i.imgur.com/L1aOt.jpg | display

И иногда вам даже не нужно передавать его куда-либо, даже если вывод "двоичный". Попробуйте это на Xterm:

curl http://www.dim13.org/tek/teapot.tek         # Utah teapot
-2

Цели могут варьироваться в зависимости от пользователя. Разработчик может использовать эту информацию для регистрации, отслеживания прогресса или даже обработки ошибок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .