Si code.txt
(o cualquier archivo) se edita y guarda, tengo dos ideas de cómo una PC manejaría el proceso:
La PC se elimina por
code.txt
completo y crea una nuevacode.txt
(versión editada) desde cero.La PC edita parte del hexadecimal de
code.txt
. Entonces no ocurre ninguna eliminación.
¿Qué idea representa cómo funcionan las computadoras?
Respuestas:
Podría ser cualquiera: depende del editor de texto que se utilizó.
El concepto de un "archivo de texto" no está integrado en las computadoras: cada sistema operativo puede administrar los archivos de manera diferente, y cada editor de texto puede usar esos archivos de manera diferente.
En la práctica, encontrará editores de texto que tienen ambos mecanismos. Prácticamente todos los sistemas operativos permiten la sobrescritura directa del contenido de un archivo existente, por lo que los editores simples como el Bloc de notas generalmente solo le piden al sistema operativo que escriba directamente en el archivo original, ya que es más fácil de implementar, pero es arriesgado si pierde potencia a mitad de la escritura. Entonces, por razones de fiabilidad, muchos editores guardan deliberadamente los datos actualizados en un nuevo archivo y eliminan el original.
(Creo que las actualizaciones en el lugar son más comunes entre los editores hexadecimales, donde la mayoría de las ediciones no insertan / eliminan bytes sino que solo cambian las ubicaciones existentes, por lo que no se necesita un archivo de reescritura completo).
Incluso hay un tercer modo de operación: el editor primero puede hacer una copia de seguridad del archivo anterior y luego escribir directamente nuevos datos en el archivo.
Es también depende del sistema de ficheros que guarda el archivo. Con la mayoría de los sistemas de archivos tradicionales, si un programa solicita escribir en un archivo existente, el sistema de archivos simplemente sobrescribirá los datos antiguos en el lugar.
Sin embargo, algunos sistemas de ficheros hacen el trabajo en el modo de "copia en escritura", donde los nuevos datos siempre se escriben en una ubicación diferente, si el programa lo quiere o no. Nuevamente, esto tiene la posible ventaja de una mayor confiabilidad porque un cambio interrumpido puede revertirse por completo.
En algunos sistemas de archivos (como Btrfs o ext4) esta es una característica opcional; en otros (p. ej., sistemas de archivos con estructura de registro) es parte del diseño central.
fuente
Como está hablando de "guardar el archivo", el archivo no se editará in situ en el disco.
Con un archivo en un sistema de archivos habitual, hay dos cosas a tener en cuenta. Existe la entrada del directorio, y luego están los datos del archivo real en algún lugar del disco.
Cuando edita un archivo en un editor normal, cargará los datos del archivo en la RAM y cualquier edición se realizará en esa copia de los datos. Luego, cuando guarda el archivo, existen básicamente dos opciones:
Opción 1: se cambia el nombre del archivo original , por lo que tanto la entrada del directorio original como los datos originales permanecerán en el disco. El cambio de nombre podría, por ejemplo, cambiar el sufijo del archivo a
.bak
(.bak
generalmente, eliminar cualquier archivo anterior ). Luego se crea un nuevo archivo y los datos de la memoria se escriben allí.Opción 2: la entrada del directorio original se modifica para que el archivo se trunca a 0 de longitud. El área del disco utilizada para los datos del archivo se marcará como no utilizada, pero el contenido del archivo antiguo permanecerá en el disco hasta que se sobrescriba. Luego se escriben nuevos datos. En este caso, la entrada del directorio permanece, solo cambian los datos a los que apunta.
Hay algunas variaciones posibles, una común, los datos editados se almacenan primero en un archivo temporal, por lo que si su computadora falla en este punto, es probable que el archivo original no se dañe. Luego, el archivo original se elimina y el nuevo archivo se renombra con el nombre correcto. O bien, el archivo original podría eliminarse antes de escribir el nuevo.
Entonces su teoría 1 está cerca de lo que hacen la mayoría de los editores.
Luego hay casos especiales. El más obvio es un editor de disco, que permite leer y sobrescribir bytes directamente en el disco. Otro podría ser un archivo de base de datos, donde los registros pueden tener un tamaño fijo, por lo que es fácil sobrescribir un registro. Pero los datos no se pueden agregar en el medio de un archivo y, por lo tanto, editar archivos de texto o cualquier otro archivo donde la longitud de los datos en el medio del archivo cambie comúnmente, estos trucos realmente no se pueden usar.
Por lo tanto, su teoría 2 es posible en algunos casos, pero los editores de texto normales y otros no lo hacen.
fuente
Históricamente, las unidades eran controladas directamente por el sistema operativo, que a su vez era controlado por la aplicación. En ese contexto, la teoría 2 era la forma principal en que funcionaban las PC. el sistema operativo especificó una ubicación física para colocar datos, y tenía control total sobre este proceso. Como resultado, los primeros sistemas de archivos tenían una tabla de "sector defectuoso", por lo que después de que se perdieron sus datos, la computadora podría decirle que los datos se perdieron y marcar el sector como inutilizable para evitar una mayor pérdida de datos. Los escaneos de disco y la desfragmentación estaban a la orden del día.
Sin embargo, después del cambio de siglo, nos mudamos a LBA, por lo que ahora el sistema operativo simplemente haría referencia al bloque "lógico" en el que quería leer o escribir. El disco duro en sí ahora tenía la inteligencia para barajar los datos detrás del sistema operativo sin que lo notara. Esto significó una mayor confiabilidad, ya que los sectores que no pudieron verificar simplemente podrían trasladarse a una nueva ubicación física sin afectar el conocimiento del sistema operativo de dónde estaban ubicados esos datos.
En el hardware moderno, las unidades de disco "plato" normalmente sobrescriben lo que estaba allí antes con los nuevos datos entrantes, y opcionalmente reasignan el LBA si parece que el sector no puede retener los datos (el sector está dañado o desgastado). Las unidades "Flash" generalmente borran las celdas antiguas y luego escriben datos en las nuevas celdas, un proceso conocido como nivelación de desgaste.
En ambos casos, esto es posible porque siempre hay una capacidad no utilizada más allá del valor informado. Este sobreaprovisionamiento permite que la unidad tenga una vida útil más larga que la tecnología poco confiable de la tecnología del siglo anterior. El modo LBA permite extraer el medio físico del sistema operativo para que la unidad en sí misma pueda tomar las medidas que la unidad considere necesarias para evitar la pérdida de datos.
En el nivel de la aplicación, normalmente abre un archivo en modo "ESCRIBIR", que le dice al sistema operativo que borre el archivo ("elimine" el contenido, pero no el archivo en sí), y luego escriba nuevos datos. Todo esto se almacena en el nivel del sistema operativo y luego se "vacía" en la unidad, lo que hace los cambios solicitados.
Dada esa información, la Teoría 1 es lo que técnicamente sucede en el nivel de programación de la aplicación, al menos por defecto, ya que también hay un modo de "escribir con agregar" para evitar borrar el contenido del archivo. El sistema operativo en sí presentará los cambios para que se realicen más como Theory 2, pero abstraídos a través de LBA. El disco en sí probablemente hará algo que sea una combinación de Teoría 1 y Teoría 2.
Sí. Es complicado y muy dependiente del fabricante de piezas / desarrollador de sistemas operativos / desarrollador de aplicaciones. Sin embargo, toda esta complejidad tiene como objetivo hacer que el almacenamiento de datos sea más confiable al tiempo que mejora el uso de energía / duración de la batería.
fuente
Depende AFAIK Microsoft Word, al guardar
.doc
(no.docx
) archivos con las opciones de guardado rápido habilitadas, agrega los cambios realizados en el documento desde la última vez que guardó el archivo existente.fuente
En términos generales, una computadora asignará la memoria donde reside el archivo original como 'eliminado', pero todo esto realmente significa que ya no aparecerá en su navegador de archivos, y las celdas en la memoria donde se escribió están permitidas para ser sobrescrito en el futuro.
En cuanto a si el nuevo archivo está escrito en el mismo lugar se debe a una serie de factores, principalmente el software que está utilizando y cómo está diseñado para hacer uso de la memoria.
fuente
Esperemos que esto no sea redundante, un poco de información / antecedentes adicionales.
La PC generalmente no tiene mucho control sobre cómo se edita un archivo, es la aplicación la que lo hace.
Algunos ejemplos de cómo algunas aplicaciones podrían manejar la edición:
El Bloc de notas carga todo el documento en la memoria y luego lo guarda sobre su documento original (o uno nuevo que especifique).
Casi todos los demás editores pequeños guardarán un archivo "nuevo" a medida que edita y luego lo copiará sobre su documento original y lo eliminará cuando "guarde".
Los editores de documentos grandes que puede usar para editar un libro tienden a leer / modificar una sección de un documento porque pueden editar documentos más grandes que la memoria. En realidad, estos pueden editar el documento "En el lugar". Podrían volver a escribir una página y dejar el resto solo. Estos a menudo tienen una representación indexada en disco más compleja que un simple archivo .txt para permitir este comportamiento.
Los editores grandes también podrían guardar archivos temporales con "actualizaciones" en su documento original. Cuando realice su guardado final, puede fusionarlos todos y volver a escribir su documento.
La mayoría de los editores se pueden configurar para dejar intacta la versión existente y crear una nueva con sus cambios (conservar las versiones anteriores).
En cuanto a la parte de su pregunta sobre lo que hace una "PC", algunos sistemas operativos recordarán cada versión de un archivo y siempre crearán una nueva. Esto es bastante raro en estos días, pero recuerdo viejas "Mini Computadoras" (lo que ahora llamaríamos mainframes) donde cada archivo tenía una versión al final como "File.text.1" y se agregaba a la versión cada vez que editado Este tipo de comportamiento se aplicaría mejor a algo como una unidad de cinta o CD-ROM donde sobrescribir la versión anterior no era práctico.
fuente
2 no es imposible, pero es estúpido por varias razones.
Un editor de archivos de texto bien escrito:
myfile.txt
, el nuevo podría sermyfile.txt.new
myfile.txt~
myfile.txt
Si la computadora falla o se queda sin espacio en el disco durante lo anterior, no hay una situación en la que tanto los archivos antiguos como los nuevos se pierdan o solo se guarden parcialmente.
fuente
Respuesta corta
Depende en gran medida de su editor, software / controladores subyacentes, almacenamiento.
Respuesta paranoica
Puede ser recuperable a menos que lo elimine permanentemente.
Respuesta larga
Falta información en su pregunta (software, hardware, etc.), por lo que, en lugar de responderme, lo ayudaré a responder usted mismo.
Depende de algunos factores:
Editor : si el software del editor reemplaza los bloques del mismo archivo, puede reescribirse. Y esto también puede depender de la configuración del editor y los tipos de archivo. Tenga en cuenta que la palabra mayo se hizo en cursiva. Incluso cuando el editor reescribe el archivo, puede permanecer intacto (lea los siguientes puntos).
Software subyacente / controladores / sistema de archivos : el archivo permanecerá intacto si hay otros software / controladores debajo que protegen el archivo inicial para que no se sobrescriba. Esos tipos de software incluyen sistemas de versiones, discos diferenciales virtuales, algún software de respaldo. Un ejemplo es Git , que mantendrá los bloques de archivos originales y creará un nuevo archivo que contenga los bloques modificados.
Almacenamiento :
El almacenamiento en sí mismo puede escribir bloques modificados en un nuevo sector y marcar los bloques antiguos como "libres". Luego, el archivo permanecerá físicamente en el almacenamiento (y es recuperable), a menos que otro archivo lo sobrescriba. El ejemplo es el almacenamiento SSD moderno , que puede hacerlo a nivel de hardware.
Hay formas de recuperar datos de los discos magnéticos de un HDD mecánico típico, incluso cuando se sobrescribieron los datos . Y hay empresas especializadas en ello.
Entonces, si desea obtener una respuesta concreta sobre si su archivo se eliminará o no, también debe indicar qué editor, copia de seguridad / software / hardware VCS y almacenamiento utiliza. Si me perdí algún punto, siéntase libre de editar la respuesta.
¿Cómo asegurarse de que el archivo eliminado se elimine realmente del almacenamiento?
Esta es probablemente la siguiente pregunta que se hará usted mismo. Bueno, hay muchas soluciones de software / hardware. Como SuperUser no es para promocionar software / hardware, en lugar de decir nombres, le diré cómo encontrarlos: busque las palabras clave "eliminar el archivo permanentemente". Para obtener coincidencias más exactas, mencione su sistema operativo, tipo de disco duro u otra información que tenga.
fuente
Un comportamiento que nadie ha mencionado aún es que el comportamiento relevante de algunas versiones de los sistemas operativos MS Windows también está relacionado con el sistema de archivos en uso.
El comportamiento funciona así: cuando cambia el nombre o elimina un archivo, si crea (vuelve a crear) un archivo (nuevo) con el mismo nombre dentro de los 15 segundos posteriores a la eliminación o el cambio del archivo original, la fecha de creación / la marca de tiempo se copia del archivo original. Esencialmente, el nuevo archivo "se convierte" en el archivo antiguo / original.
En este caso, realmente no importa si la aplicación guarda los cambios en el archivo con su método n. ° 1: hacer un nuevo archivo con el mismo nombre, o con su método n. ° 2: editar / actualizar el archivo en su lugar (archivo no eliminado) De cualquier manera, el archivo final se ve (casi) en todos los sentidos, como el archivo original. Lo único es que probablemente ocupará un espacio de unidad física diferente (grupos / sectores) y la entrada de directorio para el archivo probablemente estará en una ubicación diferente.
Como dije, este es un comportamiento de algunas versiones de MS Windows / filesystems. No sé en qué versión de Windows y en qué sistema de archivos comenzó esto, y si sigue siendo el comportamiento de versiones más recientes. Si tuviera que adivinar, diría que se introdujo en Windows NT y Windows XP y sigue siendo el comportamiento de Windows 10, y (todavía una suposición) el comportamiento requiere un sistema de archivos Fat32 o NTFS (y quizás más nuevo).
fuente