En ingeniería de software y ciencias de la computación , sobrescribir un archivo , registro de procesador o una región de la memoria de una computadora es el proceso de sobrescribir su contenido por completo, ya sea intencional o involuntariamente, o para indicar que es probable que ocurra tal acción. [1] El Archivo de Jargon define sobrescribir como
Sobrescribir, generalmente sin intención: "Me alejé del final de la matriz y golpeé la pila ". Compárese con mung , scribble , trash y smash the stack . [2]
Las sobrescrituras de memoria o de archivos en sistemas POSIX , así como en shells como Bash , a menudo ocurren de manera no intencionada, como cuando se utiliza el >
operador de redirección . Por lo tanto, para evitar la sobreescritura no intencionada, se pueden utilizar varios medios; por ejemplo, establecer el parámetro de shell set -o noclobber
( bash , ksh ) o set noclobber
( csh , tcsh ) evitará >
la sobreescritura haciendo que emita un mensaje de error en su lugar: [3]
$ echo "Hola, mundo" >file.txt $ cat file.txt Hola, mundo $ echo "Esto sobrescribirá el primer saludo." >file.txt $ cat file.txt Esto sobrescribirá el primer saludo. $ set -o noclobber $ echo "¿Podemos sobrescribirlo de nuevo?" >file.txt -bash: file.txt: no se puede sobrescribir el archivo existente $ echo "Pero podemos usar el operador >| para ignorar el noclobber." > | file.txt $ cat file.txt # Se sobrescribió correctamente el contenido de file.txt usando el operador >| Pero podemos usar el operador >| para ignorar el noclobber. $ set +o noclobber # Cambia la configuración a la configuración anterior
El comportamiento predeterminado de los comandos mv y cp es sobrescribir el archivo de destino si ya existe. Este comportamiento se puede anular invocando o creando un alias de los comandos con el -i
modificador , lo que hace que los comandos le pregunten al usuario antes de sobrescribir el archivo de destino o -n
que no transfieran archivos de origen con un conflicto de nombres.
En los archivos make , un objetivo común clobber significa la limpieza completa de todos los archivos y directorios innecesarios producidos por invocaciones anteriores del make
comando . [4] Es un objetivo más severo que clean y se usa comúnmente para desinstalar software. Algunos comandos relacionados con make invocan "make clobber" durante su ejecución. Comprueban la variable de entorno CLOBBER . Si está configurada en OFF, no se realiza la limpieza. [5]
En la programación de ensamblador , incluido el ensamblaje extendido en línea [6] compatible con C y C++ a través de GCC , el término registros sobrescritos se utiliza a menudo para indicar cualquier registro cuyo valor pueda sobrescribirse durante el curso de la ejecución de una instrucción o instrucciones.
El término "clobbering" se utiliza de varias formas diferentes en informática, y el significado suele quedar claro en el contexto. En un sentido, se refiere a sobrescribir archivos o entradas de memoria existentes. También se puede utilizar para hablar de sobrecargar ordenadores, como servidores, con peticiones, lo que provoca una degradación del rendimiento. Este segundo uso de la palabra refleja el uso común de "clobber" como palabra para describir recibir una paliza.