¿Donde esta la papelera de reciclaje? (Linux)

Este es un post unicamente para linux, para usuarios de Windows proximamente escribiremos algun post con información que se ajuste a ese sistema operativo.

Hoy me sucedió que quería ver un archivo que estaba en la papelera de reciclaje desde la linea de comando. Como era mi costumbre traté de buscarlo en el directorio ~/.trash pero para mi sorpresa, ese directorio no existía más.

En este artículo comentaré el nuevo funcionamiento de la papelera de reciclaje, donde se la puede encontrar, y demás cosas que vaya descubriendo.

En un post anterior, comenté al pasar que no había un estandar para la papelera de recicjale entre diferentes sistemas de escritorio como kde o gnome, por lo que cada uno manejaba este tema como creía mejor.

Pero ahora existe la Freedesktop.org Trash Specification que precisamente dice el formato común que deben seguir las papeleras de reciclaje. (Técnicamente ya existía pero yo no la conocía y al menos gnome no la usaba, y siendo aun mas puntillosos aun es un Draft)

Ubicación de la papelera

La especificación prevee varias papeleras de reciclaje. Al igual que lo hacía anteriormente gnome, puede haber una papelera en el mountpoint de cada partición y una papelera en el home de cada usuario. Según la especificación solo la papelera en el home es obligatoria.

A grandes razgos, la ubicacion que se usa para la papelera se determina de la siguiente manera:

  • Si se borra un archivo que esta en la misma partición que el home del usuario se utiliza la papelera que se encuentra en ~/.local/share/Trash
  • Si el archivo no esta en la misma partición, pero existe en el root de esa particion (el mountpoint) un directorio llamado .Trash, dentro de ese directorio se crea otro directorio cuyo nombre será el UID del usuario y ese directorio ser usará como Trash
  • Si el archivo no es de la misma particion que el home, y no existe un directorio .Trash (o no se tienen permisos) se crea en el mounpoint un directorio llamado .Trash-<UID>, donde UID es el numero que identifica al usuario que esta borrando el arcihvo.

Como se ve, hay varios lugares posibles para una papelera de reciclaje y a todos hay que tenerlos en cuenta. Además, los progrmas viejos, que no siguen esta especificación tal vez esten moviendo los archivos que borran al viejo directorio ~./Trash por lo que hay aún mas lugares que revisar.

Estructura interna

Antes la papelera de gnome solo contenía arcivos borrados, pero no habia forma de saber cual habia sido el directorio desde el que fueron borrados, ni cuando habian sido borrados. (creo que la papelera de kde hace rato posee esta clase de información). La papelera era, básicamente, un directorio en donde simplemente se movian los archivos que eran eliminados. Y si había dos archivos eliminados, con el mismo nombre, sin importar si fueron elimindos desde lugares o fechas distintas, el ultimo pisaba al primero. Simplemente no podian ir a la papelera dos archivos que se llamaran igual

Ahora esto fue mejorado, pero a su vez se complicó un poco la estructura interna de la papelera. La papelera cuenta ahora con dos directorios. Uno llamado files y otro llamado info. En el primero se mueven los archivos eliminados (o copian segun la implementación). El nombre con que se mueven no tiene por qué ser el mismo nombre que tenían anteriormente (aunque es recomendado que sean similares almenos) . Esto es así para poder permitir que se borren archivos con el mismo nombre, o en diferentes momentos, sin que se pierda el anterior. La idea de mantener un nombre similar al orignal es para ayudar, si es necesario, a una recuperación manual del archivo.

En el segundo directorio, info, se crea un archivo que debe tener exactamente el mismo nombre que el archivo que se está borrando, pero debe agregarsela al final .trashinfo. Si borro, por ejemplo el archivo “malid-0006.jpg” en mi home, y este se mueve a la papelera con el nombre “~/.local/share/Trash/files/malid-0006.jpg“, se debe crear un archivo llamado “~/.local/share/Trash/info/malid-0006.jpg.trashinfo”.

Este archivo .trashinfo tiene un formato similar a los archivos .desktop (para hablar en forma clara, es como un archivo .ini de windows). Debe contener una sección llamada [Tras Info] y dentro de esta dos atributos, uno llamado Path y otro llamado DeletionDate.

Por ejemplo e archivo trashinfo que se genera cuando borro una imagen llamada malid-0006.jpg es el siguiente:

[Trash Info]
Path=/home/fernando/malid-0006.jpg
DeletionDate=2008-05-01T16:00:15

Y este archivo se encuentra en /home/fernando/.local/share/Trash/files/malid-006.jpg.trashinfo.

Gracias a este archivo .trashinfo se puede saber desde donde y cuando fue borrado un archivo. Información muy valiosa para poder luego recuperarlo.

Comentarios personales

Si bien complicaron un poquito como era el tema de borrar un archivo, me parece que era algo necesario de hacer, al menos en gnome, y tambien muy bueno que todos los grandes proyectos lo adopten así se puede tener una papelera unificada y predecible.

Lamentablmente, en gnome, aún falta madurar esta nueva papelera. Si bien se pueden borrar archivos y va al lugar correcto, al applet de la papelera sigue siendo igual que siempre. No se puede verla fecha de eliminación de un archivo, ni su directorio original (al menos si muestra su nombre original. gnome usa para los nombre de los archivos en el trash el mismo nombre del archivo, y si ya existe le agrega al final un contador. por ejemplo, mi archivo malid borrado dos veces quedaría malid-0006.2.jpg.

Otra crítica que yo le hago a gnome, es que no mantiene automaticamente la papelera. si yo borro algo, este algo queda en la papelera para siempre o hasta que yo me acuerdo de borrarlo. Si ademas tenemos un sistema con muchos usuarios y uno borra cosas pero jamas borra la papelera, esta quedará por siempre ocupando espacio que los otros pobres usuarios no sabrán en que está siendo consumido. (obviamente un administrador de sistema puede detectar este tipo de cosas, pero es mas trabajo para el administrador que sería yo y soy muy vago)

Fuer ade esas criticas, me parece un excelente paso adelante y seguramente veremos florecer en poco tiempo una plétora de aplicaciones y herramientas que harán uso de este nuevo estandar de maneras que escapan a nuestra imaginación.


10 Responses to “¿Donde esta la papelera de reciclaje? (Linux)”

  1. Gracias che, muy claro 😉

  2. Felicitaciones por el artículo

  3. espectacular.

  4. Muchas gracias me quedo clarisimo

  5. Me ayudo bastante. Pude encontrar un archivo que no se dejaba borrar….gracias!!

  6. Muy buena la información. Gracias.

  7. Mil gracias !!! 😀
    esta ruta me ayudo mucho
    /home/user/.local/share/Trash/files
    sólo una duda , por que se tardaba tanto en cargar mi papeleta?.
    bueno el punto es que si pude encontrar mis archivos borrados
    GRACIAS!!!!!

  8. Como borro los archivos de esa maldita papelera?

  9. Lo primero es no desesperarse.

    Luego, si esta todo bien debería ser suficiente desde la IDE hacer click sobre la papelera, y hacer click sobre el botón Vaciar Papelera (Empty Trash)

    Si eso no funciona, pdoes ubicar los directorios donde se encuentra la papelera y borrarlos utilizando sudo rm -fr pero siempre verificando que no estas cometiendo ningun error porque no hay vuelta atrás, y podrías estar borrando algo importante.

    Tal vez si explicas mejor tu problema y envias más información como tu versión de sistema operativo, y que cosas intentaste hacer y no funcionaron alguien te pueda ayudar más y mejor.

  10. Gracias por tu ayuda

Discussion Area - Leave a Comment