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 2 | [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:
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: