Estou usando | sudo tee FILENAME
para poder escrever ou anexar a um arquivo para o qual as permissões de superusuário são necessárias com bastante frequência.
Embora eu entenda por que é útil em alguma situação, que tee
também envia sua entrada para STDOUT novamente, nunca usei essa parte tee
para algo útil. Na maioria das situações, esse recurso faz com que minha tela fique cheia de tremulação indesejada, se eu não der o passo extra e silenciá-lo manualmente tee 1> /dev/null
.
Minha pergunta: Existe um comando ao redor, que faz exatamente a mesma coisa que tee
, mas por padrão não gera nada para STDOUT?
linux
command-line
posix
tee
aef
fonte
fonte
tee
porcat >filename
, obtém os resultados desejados?cat
não grava nos arquivos por si só. E o>
operador não funciona, pois os arquivos não são graváveis pelo meu usuário atual. Então não, isso não ajuda nem um pouco. E pare para alterar completamente o significado do seu comentário a cada 2 segundos. Faça um novo.| sudo tee FILENAME
por| sudo cat >filename
, obtém os resultados desejados?>
operador usa o usuário atual do shell para gravar no arquivo. Este usuário não tem as permissões necessárias.cat
é completamente inútil para isso.Respostas:
Outra opção que evita canalizar o material de volta e depois
/dev/zero
éfonte
oflag=append conv=notrunc
opções adicionais a serem usadasdd
para anexar.A
dd
solução ainda imprime lixo eletrônico no stdout:Isso pode ser evitado usando a
status
opção:Outra possibilidade interessante (para o Linux de qualquer maneira):
Para copiar a entrada TTY em um arquivo, costumo fazer isso:
É uma pena que o tee não tenha uma opção para suprimir o stdout.
fonte
Você poderia usar um script. Ou seja, coloque algo assim em ie
$HOME/bin/stee
,0tee
ou similar:Torne executável:
Agora faça isto:
fonte
Você pode agrupar todo o comando no sudo, para que o próprio shell, bem como os redirecionamentos, sejam executados como
root
:fonte
Não há diretamente um programa para fazer isso (esta é praticamente a única vez que seria útil), mas você pode escrever facilmente o seu. Se você não quer programa, você também pode escrever um script shell simples que faz a mesma coisa:
cat > $1
. Isso é diferente de colocá-lo em linha (como sugeriu serragem), porque o sudo se aplicará a todo o script, incluindo o redirecionamento.fonte
Eu sei que é um pouco tarde demais, mas o que faço nesses casos (quando é necessário um stdout 'flat', mas também um arquivo temporário) é:
fonte
/dev/null
e não torna o comando mais curto. Qual seria a vantagem de usar isso em vez do método original?