2011-01-13 13 views

Respuesta

242

Un poco de comprensión de cómo funcionan las tuberías * nix ayudaría.

En resumen, el operador de redirección >> agregará líneas al final del archivo especificado, donde -como el único mayor que > se vaciará y sobrescribirá el archivo.

echo "text" > 'Users/Name/Desktop/TheAccount.txt' 
+2

Algunos entornos no permiten con algo como '-bash: TheAccount.txt: no se puede sobrescribir el archivo existente'. –

+7

Además, '>' y '>>' son los operadores de * salida de redirección *. El operador de tubería es '|'. –

+0

Ver respuesta por @BrDaHa.Use '> |' para forzar sobreescribir el existente – Jake

27

pesar NylonSmile's answer, que es "una especie de" correcta .. he podido 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 "[email protected]" >! "$X" || echo "[email protected]" > "$X" 

Obviamente, tener cuidado con esto ...

+22

Esto significa que tiene configurada la opción no predeterminada de zsh 'NOCLOBBER'. Use 'setopt clobber' para restablecer el comportamiento predeterminado. –

2
#!/bin/bash 

cat <<EOF > SampleFile 

Put Some text here 
Put some text here 
Put some text here 

EOF 
1

Si tiene salida que puede tener errores, es posible que desee utilizar un símbolo de unión y a mayor que, de la siguiente manera:

my_task &> 'Users/Name/Desktop/task_output.log' esto redireccionará stderr y stdout al archivo de registro (en lugar de stdout solamente).

+4

Eso podría ser cierto, pero no está relacionado con la pregunta. – Deiwin

34

En Bash, si ha configurado noclobber a la set -o noclobber, a continuación, se utiliza la sintaxis >|

Por ejemplo:

echo "some text" >| existing_file

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


  • Comprobar si noclobber se establece con: set -o | grep noclobber

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

  • Para una lista más exhaustiva de los operadores de redirección, consulte this post

+0

Gracias, también funciona para zsh. –

Cuestiones relacionadas