Olá, qual seria o comando que cria um arquivo de texto com a saída do comando apt list --installed?
Testa o comando >
Exemplo: apt list --installed > instalados.txt
“>>”
é quando você quer enviar algo para um arquivo existente.
Lembrando que assim, sem indicar parametros de path, ele salva na home ou no diretório que você estiver atualmente.
Há duas maneiras: (1) comando > arquivo-destino
e (2) comando | tee arquivo-destino
(cuidado, ambas apagam o arquivo-destino
e o substituem pela saída do programa).
-
apt list --installed > instalados.txt
(não aparece no terminal, mas o arquivoinstalados.txt
na pasta onde o comando foi rodado vai ter o conteúdo). -
apt list --installed | tee instalados.txt
(aparece no terminal e noinstalados.txt
)
Isso ficou melhor explicado.
No caso do >> seria para acrescentar no arquivo destino, sem sobreescreve-lo e sem aparecer no terminal, ou seja, || faria o mesmo aparecendo no terminal, certo?
Uma brincadeira que pode ser feita para testar estes comandos e tem & e && também é usar o comando echo
no terminal por exemplo:
echo hello > Planet.txt
echo hello | Planet.txt
echo hello & Planet.txt
daí pensamos, “ah esqueci do world” então:
echo world >> Planet.txt
echo world || Planet.txt
echo world && Planet.txt
Ele vai acrescentar e quando olharmos no .txt vai estar hello world
O comando echo, ele entende como strings, ou seja, oque digitarmos a frente dele salva/sobreescreve no bloco de notas.
Tem alguns truques além do que o @RuKsu disse:
apt list --installed 2> instalados.txt
Redireciona apenas os erros
apt list --installed 2> > instalados.txt
Redireciona a saida padrão e os erros
apt list --installed 2>&1 > instalados.txt
Redireciona para o final de um arquivo
apt list --installed >> instalados.txt
Salva em um arquivo e imprime na tela (necessário se precisar redirecionar pra um lugar que precisa de root)
apt list --installed | tee instalados.txt
Salva no final de um arquivo e imprime na tela (necessário se precisar redirecionar pra um lugar que precisa de root)
apt list --installed | tee -a instalados.txt
Edit: Todos os outros meios suportam 2>&1 não coloquei pra não ficar redundante
Obrigado por todas as respostas gente!
Apesar de fazer muito sentido, não é bem assim. comando1 || comando2
significa “execute comando2
se comando1
falhar”. O equivalente de >>
com o tee
seria comando | tee -a arquivo
, como notou o @Natanael.755.
Dá pra passar um tempinho falando aqui dos 3 fluxos de dado que todo comando no Linux (e no BSD, MacOS, Solaris, etc.) têm, e como >
e tee
atuam neles para a razão dessa diferença, mas eu não consegui pensar em como condensar isso num único post.
O que foi explicado acima está correto, é isso mesmo.
Caso queira fazer um tratamento da saída, pode usar outros comandos como echo, cat, sed, cut, grep… fazendo com que a sua saída não seja totalmente bruta. Eu usei esses comandos em um post que fiz, Velocidade da Internet com SpeedTest no Linux + Monitoramento pelo Zabbix, nele há bastante filtragem da saída dos comandos, assim, salvando somente o que eu preciso e consigo utilizar.
Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.