Evitar la escritura accidental en Linux con noclobber

Un pequeño tip donde aprendemos a evitar la escritura accidental en GNU/Linux con noclobber. Para conseguirlo, solo debemos exportar el valor «noclobber» a las variables de la sesión de la shell de BASH

Como sabemos para enviar la salida standard a otro fichero lo haríamos como sigue:

  1. comando > fichero.txt

Está claro que, si en ese fichero tenemos información importante, que otra persona o nosotros mismos, por error, enviamos información con stdout «>«, podemos tener un grave problema. Para evitarlo debemos declarar el valor «noclobber» en la sesión de la shell.

De esta manera indicaremos a shell de BASH, que no elimine datos ni contenidos de archivos por error.

¿Cómo añadimos el valor noclobber?

Debemos abrir la terminal y escribir

  1. # set -o noclobber

Una vez hecho esto, si queremos escribir sobre un archivo:

  1. [root@servcentos ~]# cat > salida.txt
  2. -bash: salida.txt: no se puede sobreescribir un fichero existente

También lo podemos añadir a las variables de entorno de manera permanente, editando el fichero «.bashrc»

¿Cómo deshabilitar la protección de noclobber?

Para poder deshabilitarlo, solo hemos de escribir:

  1. # set +o noclobber

Si no queremos deshabilitarla, por precaución, también podemos forzar la escritura, de la siguiente manera:

  1. # cat >| Salida.txt

Espero que os sea de utilidad esta información en algún momento.

Para más información:

Artículo de Wikipedia sobre Clobbering

2 Respuestas

  1. tavo dice:

    Excelente artículo, me fue de mucha ayuda cuando instale Oh my Bash!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.