Escribir en el archivo, pero sobrescribirlo si existe.

Resuelto switz asked hace 13 años • 9 respuestas
echo "text" >> 'Users/Name/Desktop/TheAccount.txt'

¿Cómo hago para que cree el archivo si no existe, pero lo sobrescriba si ya existe? En este momento este script simplemente se agrega.

switz avatar Jan 13 '11 10:01 switz
Aceptado

El >>operador de redirección agregará líneas al final del archivo especificado, mientras que el único mayor que >vaciará y sobrescribirá el archivo.

echo "text" > 'Users/Name/Desktop/TheAccount.txt'
Nylon Smile avatar Jan 13 '2011 03:01 Nylon Smile

En Bash, si ha configurado noclobber a la set -o noclobber, entonces usa la sintaxis>|

Por ejemplo:

echo "some text" >| existing_file

Esto también funciona si el archivo aún no existe.


  • Compruebe si noclobber está configurado con:set -o | grep noclobber

  • Para una explicación más detallada sobre este tipo especial de operador, consulte esta publicación

  • Para obtener una lista más exhaustiva de operadores de redireccionamiento, consulte esta publicación

BrDaHa avatar Feb 23 '2016 22:02 BrDaHa

A pesar de NylonSmilela respuesta de , que es "más o menos" correcta... No pude sobrescribir archivos de esta manera...

echo "i know about Pipes, girlfriend" > thatAnswer

zsh: file exists: thatAnswer

para resolver mis problemas... tuve que usar... >!, á la ..

[[ $FORCE_IT == 'YES' ]] && echo "$@" >! "$X" || echo "$@" > "$X"

Obviamente, ten cuidado con esto...

Alex Gray avatar May 10 '2014 20:05 Alex Gray