Algo de lo que me preguntaba cuando estaba borrando una docena de imágenes de mi computadora: con un rm -rf
comando rápido sobre el contenido del directorio, todas las imágenes desaparecieron en un instante. Cuando arrastro la misma docena de imágenes a una papelera / prohibición de reciclaje, a veces toma 10 segundos o más.
Ahora estoy seguro de que parte proviene de la sobrecarga de la GUI y tal, y parte de ello puede ser el hecho de que el archivo todavía "existe" de alguna forma si se coloca en la papelera de reciclaje, pero ¿hay algo más que explica una disparidad de tiempo tan grande ? ¿Son "rm" y "delete" comandos tan fundamentalmente diferentes por lo que estoy tratando de comparar manzanas y naranjas?
linux
command-line
Jordan Plahn
fuente
fuente
Respuestas:
Como notó correctamente, la GUI hace más que simplemente "eliminar" los archivos.
simplemente se repite en carpetas eliminando los archivos y carpetas que encuentra allí.
La GUI primero escanea todo el árbol para determinar qué hay allí (para saber cuánto tiene que hacer para dibujar la barra bonita), luego vuelve a atravesar el árbol moviendo los archivos desde la ubicación actual a la ubicación del archivo. archivos de papelera para su GUI específica. Ese movimiento lleva más tiempo, ya que primero tiene que generar un nuevo nombre de archivo único, vincular el archivo en la carpeta de la papelera, luego desvincularlo de la carpeta actual y actualizar un índice de dónde provienen los archivos para que puedan "deshacerse". muchas operaciones en lugar de solo una.
Por ejemplo, en Gnome 3 los archivos se mueven a la ubicación:
Dónde
filename
está el nombre del archivo original yversion
es un número de versión incremental para garantizar que el archivo sea único (la primera instancia de archivo no tiene número de versión). Asociado a eso hay un.trashinfo
archivo almacenado en la carpeta:Este archivo contiene la ruta original del archivo antes de la eliminación, así como la fecha y hora en que se eliminó este archivo.
Todas estas operaciones adicionales, que deben realizarse en todos y cada uno de los archivos individuales del árbol que está eliminando, aseguran que puede restaurar cualquier archivo de la papelera y que puede eliminar archivos del mismo nombre del misma ubicación y aún restaurar versiones anteriores.
Nada de eso se hace con un simple
rm
omv
comando.fuente
trash-cli
no parece hacerlo de forma recursiva. Al eliminar una carpeta, ¿Gnome 3 realmente coloca un.trashinfo
archivo recursivamente para cada subcarpeta y todos los archivos que lo contienen?