¿Eliminar automáticamente archivos antiguos de la papelera de reciclaje y conservar los nuevos?

25

Quiero un complemento de explorador que elimine los archivos antiguos de la papelera de reciclaje después de un período de tiempo.

Por ejemplo, quiero establecer el límite de tiempo en 30 días. Cuando elimino un archivo en Windows, el software mantendrá un registro de su tiempo de eliminación. Todos los días, buscará el archivo eliminado cuya edad ha alcanzado los 30 días, y eliminará si hay alguno.

¿Hay algún software como este?

hkBattousai
fuente
¿Quizás, en lugar de establecer un límite de tiempo, podría hacer que la Papelera de reciclaje elimine automáticamente los elementos más antiguos cuando se alcanza un cierto límite de tamaño ? ¿Sería esto aceptable?
William Jackson
3
@WilliamJackson Eso puede ser una solución para aquellos que tienen espacio limitado en el disco duro. Pero en mi caso, quiero asegurarme de que no me arrepentiré de vaciar el archivo de reciclaje debido a la pérdida de un archivo eliminado recientemente. Con este sistema, me olvidaré de la papelera de reciclaje, se vaciará automáticamente y tendré mucho tiempo para recuperar un archivo eliminado si me arrepiento después.
hkBattousai
1
En gnu / linux world, KDE tiene esta característica, y creo que es excelente para la usabilidad. ¿Por qué debería guardar en la papelera los archivos durante más de, por ejemplo, 1 mes? Este enfoque no abarrota su papelera con archivos antiguos que ya no serán relevantes para usted, por lo que es mucho más fácil encontrar y recuperar uno o más archivos cuando lo necesita (realmente útil si trabaja mucho con texto archivos, que siempre son pequeños) y no desperdician espacio en el disco con archivos que ya no le son útiles
gerlos
No es un complemento de explorador, y son solo 24 horas, pero CCleaner tiene esta opción i.imgur.com/JaeJhzU.png
Matthew Lock

Respuestas:

9

RecycleBinEx es una aplicación simple para Windows que hace exactamente lo que le pides. Ver: http://www.fcleaner.com/recyclebinex

En Mac OSX, Hazel hace lo mismo (entre otros): http://www.noodlesoft.com/

KDE Plasma incluye esta función de manera predeterminada , por lo que si está ejecutando Kubuntu, Arch, Chackra Linux o cualquier otra distribución con KDE, ya tiene esta función. Solo mira la ventana de configuración de Dolphin.

En Ubuntu Unity, Gnome o cualquier otro entorno de escritorio gnu / linux que proporcione una función estándar de Papelera FreeDesktop.org, puede usar AutoTrash para hacer esto: http://www.logfish.net/pr/autotrash/
También se puede lograr un comportamiento similar con trash-cli , eso podría usarse también para enviar archivos a la papelera directamente desde la línea de comandos. Ver: https://github.com/andreafrancia/trash-cli

La mayoría de las aplicaciones de correo electrónico también tienen esta función para su "bote de basura".

En Android no hay ningún "bote de basura" de forma predeterminada (cuando lo elimina, desaparece para siempre), pero puede instalar aplicaciones como Dumpster para (de alguna manera) obtener características similares: http://www.dumpsterapp.mobi/

Como se dijo anteriormente, creo que eliminar automáticamente los archivos antiguos de la papelera es una gran característica para que sea más utilizable , ya que reduce el desorden (¿esos archivos que tiraste hace 3 meses siguen siendo relevantes para ti? Y TODAS esas revisiones antiguas de la misma archivo?) y hace que sea más fácil encontrar lo que desea recuperar (después de todo, esta es la razón para tener un "bote de basura" en nuestras computadoras), aún siendo seguro.

Es aún más útil si trabajas mucho con archivos de texto (código o prosa), ya que la mayoría de las veces son pequeños y no necesitan mucho espacio (por lo tanto, es posible que nunca lleguen a la cuota de la papelera). De esta manera, ni siquiera necesitará "vaciar su bote de basura" periódicamente. Simplemente sabe que tiene un período de tiempo para recuperar sus archivos "basura" si es necesario.

Al observar la mayoría de los servicios en la nube (Dropbox, Google Drive, Simplenote, ...), la mayoría de ellos parecen tener una política similar para los archivos eliminados. Realmente creo que es lo que hay que hacer con sus archivos, y parece que lo creen.

gerlos
fuente
1
He estado usando este software desde que publicaste tu respuesta aquí. Es bastante bueno Estoy satisfecho con eso Lo recomiendo. Esto era exactamente lo que estaba buscando. Gracias por tu respuesta.
hkBattousai
1
Una buena adición a esa lista es trash-cli, una herramienta similar a la papelera de línea de comandos autotrash, que le permite enviar archivos a la papelera incluso desde la línea de comandos. Ver webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html y github.com/andreafrancia/trash-cli
gerlos
¿RecycleBinEx funcionará en Windows 10? Parece que no es una característica predeterminada que se ofrece en Windows 10.
still_dreaming_1
1
@ still_dreaming_1 la última vez que lo intenté (hace varios meses), RecycleBinExparecía funcionar en Windows 10. Pero no lo uso como mi sistema principal, por lo que no puedo decir si todavía funciona con actualizaciones recientes del sistema.
gerlos
1
Acabo de probar RecycleBinEx en Windows 10. La interfaz gráfica de usuario tiene un comportamiento extraño: algunos archivos en la papelera de reciclaje aparecen con nombres de archivo de un solo carácter, pero la opción de línea de comandos para eliminar archivos anteriores a X días parece funcionar bien. Para ver las opciones de la línea de comandos, escriba "RecycleBinEx.exe /?" en la línea de comando.
Aaron
17

No conozco ningún complemento de Explorer, pero como la mayoría de las cosas en Windows, esto se puede hacer con PowerShell:

ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
    $Path = $Drive.Name + ':\$Recycle.Bin'
    Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
    Remove-Item -Recurse
}

Guarde este script como un archivo de texto con una .ps1extensión. Luego puede usar el Programador de tareas para ejecutar esto a intervalos regulares.

Sin embargo, primero debe permitir la ejecución de los scripts de PowerShell, porque de manera predeterminada solo puede ejecutar comandos escritos directamente en el indicador de PowerShell. Para hacer esto, abra PowerShell y escriba el siguiente comando:

Set-ExecutionPolicy RemoteSigned

Escriba "y" o "sí" cuando se le solicite. Ver Get-Help Set-ExecutionPolicypara más información.

Ahora abra el Programador de tareas y cree una nueva tarea con los siguientes parámetros:

  1. En la pestaña "General", ingrese un nombre y marque la opción "Ejecutar con los privilegios más altos"
  2. En la pestaña "Activadores", agregue un nuevo activador y configure la tarea para que se ejecute diariamente
  3. En la pestaña "Acciones", agregue una nueva acción:
    • deje el tipo como "Iniciar un programa"
    • establezca el campo "Programa / script" en C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • establezca el campo "Agregar argumentos" en -NonInteractive -File "C:\path\to\script.ps1"
  4. En la pestaña "Condiciones", desmarque "Iniciar la tarea solo si la computadora está con alimentación de CA"

Explicación línea por línea del guión:

ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {

Esto obtiene una lista de todas las unidades en la computadora y las recorre una por una. El -PSProvider FileSystemparámetro solo se requiere para devolver unidades de disco, porque PowerShell también tiene pseudounidades para varias otras cosas, como las colmenas de registro.

Para obtener más información, consulte Get-Help Get-PSDrivey este tutorial sobre el procesamiento de bucles en PowerShell .

$Path = $Drive.Name + ':\$Recycle.Bin'

Esto construye la ruta a la carpeta Papelera de reciclaje en la unidad actual. Tenga en cuenta el uso de comillas simples alrededor de la segunda parte, para evitar que PowerShell interprete $Recyclecomo una variable.

Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |

Esto devuelve todos los archivos y subcarpetas bajo la ruta dada (la que construimos con el comando anterior). El -Forceparámetro es necesario para ir a carpetas ocultas y del sistema, y -Recursehace que el comando sea recursivo, es decir. recorrer todos los subdirectorios también. -ErrorActiones un parámetro estándar para la mayoría de los comandos de PowerShell, y el valor SilentlyContinuehace que el comando ignore los errores. El propósito de esto es evitar errores en las unidades que se han configurado para eliminar archivos de inmediato. El |símbolo al final canaliza los resultados al siguiente comando; Lo dividí en varias líneas para una mejor legibilidad.

Para más información, ver Get-Help Get-ChildItem.

Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |

Esto simplemente filtra los resultados del comando anterior y devuelve solo los que tienen más de 30 días. $_se refiere al objeto que se está procesando actualmente, y la LastWriteTimepropiedad en este caso se refiere a la fecha y hora en que se eliminó el archivo. Get-DateDevuelve la fecha actual.

Para más información, vea Get-Help Where-Objecty Get-Help Get-Date.

Remove-Item -Recurse

Esto simplemente elimina los elementos que le pasó el comando anterior. El -Recurseparámetro elimina automáticamente el contenido de las subcarpetas no vacías; sin él, se le solicitarán esas carpetas.

Para más información, ver Get-Help Remove-Item.

Indrek
fuente
Yo lo instalé. Muchas gracias por explicarlo con tanto detalle.
hkBattousai
3
Como alternativa a la configuración global de la política de ejecución, puede crear una línea de comando que lo pone para el proceso: powershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1.
jpmc26
La Papelera de reciclaje en la vista de detalles del explorador tiene una columna especial: "Fecha de eliminación", me pregunto cómo podemos filtrar usando eso. LastWriteTime no es lo mismo de ninguna manera.
Ciantic
Habló demasiado pronto, encontré esto: baldwin-ps.blogspot.fi/2013/07/... también tiene una "Fecha de eliminación".
Ciantic
4

La Papelera de reciclaje de Windows elimina automáticamente los archivos más antiguos cuando alcanza su tamaño máximo: ¿Qué sucede cuando la Papelera de reciclaje usa su espacio asignado?

Puede controlar esto desde las propiedades de la Papelera de reciclaje

ingrese la descripción de la imagen aquí

Matthew Lock
fuente
1
Esta respuesta no responde a la pregunta, ya que este mecanismo no tiene en cuenta la antigüedad específica de los archivos; solo elimina los archivos más antiguos de edad arbitraria para mantener un volumen preestablecido de datos.
Jonathan J