Perguntas com a marcação «pipe»

Um canal Unix conecta os descritores de arquivos de dois processos. Um canal é criado com a função pipe () POSIX declarada em <unistd.h>. Os shells fornecem criação de canal entre processos usando "|".

395
Desativar o buffer no tubo

Eu tenho um script que chama dois comandos: long_running_command | print_progress As long_running_commandimpressões de um progresso, mas eu estou infeliz com ele. Estou usando print_progresspara torná-lo mais agradável (ou seja, imprimo o progresso em uma única linha). O problema: conectar um...

148
Bash: O que faz "> |"?

Acabei de ver isso escrito; $ some-command >| /tmp/output.txt Tubos verticais são usados ​​em redirecionamentos padrão "canalizando" a saída de um comando para outro, é >|de fato completamente inútil, pois seria o mesmo que apenas >neste

146
Qual é o tamanho do buffer do tubo?

Como comentário , estou confuso sobre por que "| true" em um makefile tem o mesmo efeito que o usuário "|| true" cjm escreveu: Outro motivo para evitar | true é que, se o comando produzisse saída suficiente para preencher o buffer do pipe, ele bloqueava a espera de true para lê-lo. Temos...

98
Pseudo arquivos para dados temporários

Muitas vezes, eu quero alimentar dados de string relativamente curtos (embora possam ser várias linhas) para programas de linha de comando que aceitam apenas entradas de arquivos (por exemplo, wdiff) de forma repetida. Claro que posso criar um ou mais arquivos temporários, salvar a string e...

89
Em que ordem os comandos canalizados são executados?

Eu nunca pensei sobre como o shell realmente executa comandos canalizados. Sempre me disseram que o "stdout de um programa é canalizado para o stdin de outro", como uma maneira de pensar sobre os pipes. Então, naturalmente, pensei que, no caso de dizer, A | B, A seria executado primeiro, depois B...

74
Não pode entrar no diff?

Eu queria ser inteligente e comparar um arquivo remoto com um arquivo local sem primeiro fazer o download manualmente. Eu posso obter o conteúdo do arquivo remoto ssh user@remote-host "cat path/file.name" No entanto, encanar isso para diff ssh user@remote-host "cat path/file.name" | diff...

63
Como fazer tubo bidirecional entre dois programas?

Todo mundo sabe como fazer tubo unidirecional entre dois programas (ligamento stdoutde primeiro e stdinde segundo): first | second. Mas como fazer tubo bidirecional, ou seja, ligação cruzada stdine stdoutde dois programas? Existe uma maneira fácil de fazer isso em uma

52
Para que é utilizado o comando mknod?

Comecei a usar o Ubuntu como meu sistema operacional principal e queria aprender sobre coisas que não deveria fazer e aprender com as coisas ruins que as pessoas fizeram no passado. Eu me deparei com esses e-mails sobre histórias de horror que os administradores de sistemas UNIX e Linux haviam...

50
Devo me preocupar com gatos desnecessários?

Muitos utilitários de linha de comando podem receber suas entradas de um canal ou como um argumento de nome de arquivo. Para scripts shell longos, acho que iniciar a cadeia com a cattorna mais legível, principalmente se o primeiro comando precisar de argumentos de várias linhas. Comparar sed...