Estoy usando | sudo tee FILENAME
para poder escribir o agregar a un archivo para el cual se requieren permisos de superusuario con bastante frecuencia.
Aunque entiendo por qué es útil en alguna situación, eso tee
también envía su entrada a STDOUT nuevamente, nunca he usado esa parte tee
para nada útil. En la mayoría de las situaciones, esta característica solo hace que mi pantalla se llene de fluctuaciones no deseadas, si no paso el paso adicional y la silencio manualmente tee 1> /dev/null
.
Mi pregunta: ¿Hay un comando alrededor, que hace exactamente lo mismo que tee
, pero por defecto no genera nada en STDOUT?
linux
command-line
posix
tee
aef
fuente
fuente
tee
concat >filename
, ¿obtiene los resultados que desea?cat
no escribe en archivos por sí mismo. Y el>
operador no funciona ya que mi usuario actual no puede escribir en los archivos. Entonces no, eso no ayuda un poco. Y deténgase para alterar completamente el significado de su comentario cada 2 segundos. Haz uno nuevo en su lugar.| sudo tee FILENAME
con| sudo cat >filename
, ¿obtiene los resultados que desea?>
operador utiliza el usuario de shell actual para escribir en el archivo. Este usuario no tiene los permisos necesarios.cat
Es completamente inútil para eso.Respuestas:
Otra opción que evita volver a conectar las cosas y luego a
/dev/zero
esfuente
oflag=append conv=notrunc
opciones adicionales que se pueden usardd
para agregar.La
dd
solución todavía imprime basura en stdout:Eso se puede evitar usando la
status
opción:Otra posibilidad interesante (para Linux de todos modos):
Para copiar la entrada TTY en un archivo, a menudo hago esto:
Es una lástima que la camiseta no tenga una opción para suprimir stdout.
fuente
Podrías usar un guión. Es decir, poner algo como esto en ie
$HOME/bin/stee
,0tee
o similar:Hazlo ejecutable:
Ahora haz, es decir:
fuente
Puede envolver todo su comando en sudo, por lo que el shell en sí, así como las redirecciones, se realizan como
root
:fuente
No hay un programa directamente para hacer eso (este es prácticamente el único momento en que sería útil), pero podría escribir fácilmente el suyo. Si no desea programar, también se podría escribir un script simple que hace lo mismo:
cat > $1
. Esto es diferente de ponerlo en línea (como sugiere el aserrín) porque el sudo se aplicará a todo el script, incluida la redirección.fuente
Sé que es un poco tarde, pero lo que hago en estos casos (cuando se necesita un stdout 'plano' pero también un archivo temporal) es:
fuente
/dev/null
y no hace que el comando sea más corto. ¿Cuál sería la ventaja de usar esto en lugar del método original?