De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rodrigo Bernardo Pimentel
Data de Publicação: 07 de Agosto de 2000
Muitas vezes queremos utilizar a saída de um comando como entrada para outro, mas o primeiro espera um arquivo. Por exemplo, podemos querer fazer um diff da saída de dois comandos. Digamos que temos dois diretórios supostamente idênticos (talvez um seja o backup do outro), mas queremos checar. Há várias formas de se fazer isso, mas uma seria
# ls -l /home/rbp > /tmp/arq1 # ls -l /home/rbp-bak > /tmp/arq2 # diff /tmp/arq1 /tmp/arq2 (ou, para quem se lembra de uma dica anterior) # diff /tmp/arq{1,2} # rm /tmp/arq1 /tmp/arq2
Como todo bom usuário de Unix, a preguiça nos impele a usar um número mínimo de comandos (ou seja, menos digitação). Existe um modo de se criarem "arquivos virtuais" temporários no bash. A expressão
<(comando)
executa "comando" e fornece um "file descriptor" com sua saída. Em termos práticos, é como se um arquivo temporário fosse criado com a saída do comando e apagado depois de usado. Assim, o exemplo acima poderia ficar como:
# diff <(ls -l /home/rbp) <(ls -l /home/rbp-bak)
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários