Como salvar a saída de um comando em um arquivo?

Use o operador do núcleo > <file>: o padrão é acrescentar, enquanto -r substitui o arquivo de destino.

Acrescentar por padrão

dns google.com > save.log continua mostrando o resultado DNS no terminal e, ao mesmo tempo, acrescenta a mesma representação textual a save.log no diretório atual do lil-terminal. Depois do resultado, o terminal mostra o caminho de destino resolvido. Uma nova execução acrescenta outro bloco sem apagar os dados anteriores.

Substituir ou pedir o acréscimo explicitamente

Use -r depois do destino para substituí-lo: dns gmail.com > save.log -r. -a seleciona explicitamente o modo de acréscimo, que já é o padrão. Caminhos com espaços devem ficar entre aspas. Como o operador pertence ao núcleo, cada módulo não precisa criar uma opção própria de exportação apenas para preservar o que exibe.

Quais resultados podem ser redirecionados

Somente resultados representáveis como texto normal são gravados. Editores interativos, solicitações de segredo, downloads e eventos de controle do navegador não são transformados em arquivos. Se um comando já usa > na própria gramática, esse significado é preservado; o redirecionamento é reconhecido como operador final de saída.

Reutilizar o último resultado

history -o devolve o último resultado textual redirecionável mantido na sessão PHP atual. history -o > history.log acrescenta esse conteúdo e history -o > history.log -r substitui o arquivo. Os atalhos Ctrl/Command+S no desktop executam exatamente esses comandos.

Por que os valores usam dois-pontos

Na gramática atual, > fica reservado ao redirecionamento de saída do núcleo. Os comandos que recebem um valor usam :: ini app.ini -w key : value, json app.json -w path : value, ses path : value, attr file key : value e db : SELECT .... Assim desaparece a ambiguidade e command ... > file mantém o mesmo significado em todo lugar. Se uma versão antiga do módulo ainda estiver instalada, o núcleo a detecta e mostra uma orientação de migração em vez de redirecionar silenciosamente o conteúdo errado.

Exemplos

dns google.com > save.log
dns gmail.com > save.log -r
env > "logs/env current.log" -a
history -o > history.log
history -o > history.log -r

Documentação relacionada

← Voltar ao FAQ