Quiero hacer:
echo "something" >> /etc/config_file
Pero, como solo el usuario root tiene permiso de escritura para este archivo, no puedo hacer eso. Pero lo siguiente tampoco funciona.
sudo echo "something" >> /etc/config_file
¿Hay una manera de adjuntar a un archivo en esa situación sin tener que abrirlo primero con un sudo
¿Editor y luego añadir el nuevo contenido a mano?
linux
command-line
sudo
hsribei
fuente
fuente
ls
con ruta de directorio muestra archivos, perols
con el patrón de archivo no?Respuestas:
La herramienta adecuada para la tarea correcta: tee '
Así que tu línea de comando se convierte en
La ventaja de
tee
sobre ejecución de Bash con permisos administrativos es:fuente
tee
tiene el-a
añadir banderaecho "output" | sudo tee -a file > /dev/null
Si desea omitir la salida de la consola.La redirección se ejecuta en el shell actual. Para realizar la redirección con privilegios elevados, debe ejecutar el shell en sí con privilegios elevados:
fuente
Haga que sudo genere un sub-shell:
En este ejemplo, sudo ejecuta "sh" con el resto como argumentos.
(Esto se muestra como un ejemplo en la página man de sudo)
fuente
Por lo general uso documento de shell AQUI con sudo tee -a . Algo a lo largo de las líneas de:
fuente
En mi opinión, lo mejor en este caso es dd:
fuente
Puede haber un problema con el sudo aquí y con la redirección. Utilice un editor de texto de su elección para agregar la línea.
O bien, podría probar su lugar
fuente
su -c 'echo "JAVA_HOME=/usr/lib/jvm/java-6-sun" >> /etc/profile'
Deberia trabajar. ya que no hay nada que el shell pueda expandir erróneamente en el argumento para hacer eco, solo tiene que citar el comando general.Esto no funcionará si intenta redirigir (usando
>>
) la salida de sudo. Lo que realmente quieres hacer es redirigir la salida deecho
. Le sugiero que simplemente use su editor favorito y agregue esa línea manualmente a/etc/profile
. Esto tiene el beneficio adicional que puede comprobar si/etc/profile
ya estableceJAVA_HOME
.fuente
Utilizar ex -camino:
y reemplazar
FOO
con su variable para anexar.En algunos sistemas (como OS X), el
/etc/profile
El archivo tiene 444 permisos, por lo que si todavía obtienes Permiso denegado , compruebe y corrija el permiso primero:vuelva a intentarlo.
fuente