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:
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
# set -o noclobber
Una vez hecho esto, si queremos escribir sobre un archivo:
[root@servcentos ~]# cat > salida.txt
-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:
# set +o noclobber
Si no queremos deshabilitarla, por precaución, también podemos forzar la escritura, de la siguiente manera:
# cat >| Salida.txt
Espero que os sea de utilidad esta información en algún momento.
Para más información: