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

lscon ruta de directorio muestra archivos, perolscon 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
teesobre ejecución de Bash con permisos administrativos es:fuente
teetiene el-aañadir banderaecho "output" | sudo tee -a file > /dev/nullSi 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/profileya estableceJAVA_HOME.fuente
Utilizar ex -camino:
y reemplazar
FOOcon su variable para anexar.En algunos sistemas (como OS X), el
/etc/profileEl archivo tiene 444 permisos, por lo que si todavía obtienes Permiso denegado , compruebe y corrija el permiso primero:vuelva a intentarlo.
fuente