Supprimer automatiquement les anciens fichiers du bac de recyclage tout en conservant les nouveaux?

25

Je veux un module complémentaire d'explorateur qui supprimera les anciens fichiers du bac de recyclage après une période de temps.

Par exemple, je veux fixer le délai à 30 jours. Lorsque je supprime un fichier sous Windows, le logiciel conserve un enregistrement de son heure de suppression. Chaque jour, il recherchera les fichiers supprimés dont l'âge a atteint 30 jours et les supprimera s'il y en a.

Existe-t-il un logiciel comme celui-ci?

hkBattousai
la source
Peut-être, au lieu de fixer une limite de temps, vous pourriez demander à la Corbeille de supprimer automatiquement les éléments les plus anciens lorsqu'une certaine taille limite a été atteinte? Serait-ce acceptable?
William Jackson
3
@WilliamJackson Cela peut être une solution pour ceux qui ont un espace disque limité. Mais dans mon cas, je veux m'assurer de ne pas regretter de vider le fichier de recyclage à cause de la perte d'un fichier récemment supprimé. Avec ce système, j'oublierai simplement la corbeille, elle se videra automatiquement et j'aurai beaucoup de temps pour récupérer un fichier supprimé si je le regrette par la suite.
hkBattousai
1
Sur le monde GNU / Linux, KDE a cette fonctionnalité, et je pense que c'est génial pour la convivialité. Pourquoi devrais-je conserver les fichiers de la corbeille pendant plus d'un mois, par exemple? Cette approche n'encombre pas votre poubelle avec d'anciens fichiers qui ne seront plus pertinents pour vous, il est donc beaucoup plus facile de trouver et de récupérer un ou plusieurs fichiers lorsque vous en avez besoin (très utile si vous travaillez beaucoup avec du texte fichiers, qui sont toujours petits), et ne gaspillez pas d'espace disque avec des fichiers qui ne vous sont plus utiles.
gerlos
Ce n'est pas un ajout d'explorateur, et ce n'est que de 24 heures, mais CCleaner a cette option i.imgur.com/JaeJhzU.png
Matthew Lock

Réponses:

9

RecycleBinEx est une application simple pour Windows qui fait exactement ce que vous demandez. Voir: http://www.fcleaner.com/recyclebinex

Sur Mac OSX, Hazel fait la même chose (entre autres): http://www.noodlesoft.com/

KDE Plasma fournit cette fonctionnalité par défaut , donc si vous utilisez Kubuntu, Arch, Chackra Linux ou toute autre distribution avec KDE, vous disposez déjà de cette fonctionnalité. Regardez simplement la fenêtre de configuration de Dolphin.

Sur Ubuntu Unity, Gnome ou tout autre environnement de bureau gnu / linux fournissant une fonctionnalité de corbeille FreeDesktop.org standard, vous pouvez utiliser AutoTrash pour faire cette chose: http://www.logfish.net/pr/autotrash/
Un comportement similaire peut également être accompli avec trash-cli , qui pourrait également être utilisé pour envoyer des fichiers vers la corbeille directement depuis la ligne de commande. Voir: https://github.com/andreafrancia/trash-cli

La plupart des applications de messagerie ont également cette fonctionnalité pour leur "poubelle".

Sur Android, il n'y a pas de «poubelle» par défaut (lorsque vous le supprimez, c'est parti pour toujours), mais vous pouvez installer des applications comme Dumpster pour (en quelque sorte) obtenir des fonctionnalités similaires: http://www.dumpsterapp.mobi/

Comme indiqué ci-dessus, je pense que la suppression automatique des anciens fichiers de la corbeille est une excellente fonctionnalité pour la rendre plus utilisable , car elle réduit l'encombrement (ces fichiers que vous avez supprimés il y a 3 mois sont-ils toujours pertinents pour vous? Et TOUTES ces anciennes révisions de la même fichier?) et facilite la recherche de ce que vous voulez récupérer (c'est la raison d'avoir une "poubelle" sur nos ordinateurs, après tout), tout en étant sûr.

C'est encore plus utile si vous travaillez beaucoup avec des fichiers texte (code ou prose), que la plupart du temps sont petits et n'ont pas besoin de beaucoup d'espace (donc ils n'atteindront jamais votre quota de poubelles). De cette façon, vous n'aurez même pas besoin de "vider votre poubelle" périodiquement. Vous savez juste que vous avez une fenêtre de temps pour récupérer vos fichiers "poubelle" si vous en avez besoin.

En regardant la plupart des services cloud (Dropbox, Google Drive, Simplenote, ...), la plupart d'entre eux semblent avoir une politique similaire pour les fichiers supprimés. Je pense vraiment que c'est la bonne chose à faire avec vos fichiers, et ils semblent le penser.

gerlos
la source
1
J'utilise ce logiciel depuis que vous avez publié votre réponse ici. C'est assez bien. J'en suis satisfait. Je le recommande. C'était exactement ce que je cherchais. Merci pour votre réponse.
hkBattousai
1
Un bon ajout à cette liste est trash-cliun outil de corbeille en ligne de commande similaire à autotrash, qui vous permet d'envoyer des fichiers dans la corbeille même à partir de la ligne de commande. Voir webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html et github.com/andreafrancia/trash-cli
gerlos
RecycleBinEx fonctionnera-t-il dans Windows 10? Il semble que ce ne soit pas une fonctionnalité par défaut offerte dans Windows 10.
still_dreaming_1
1
@ still_dreaming_1 la dernière fois que j'ai essayé (il y a plusieurs mois), RecycleBinExsemblait fonctionner sur Windows 10. Mais je ne l'utilise pas comme mon système principal, donc je ne peux pas dire s'il fonctionne toujours avec les mises à jour récentes du système.
gerlos
1
Je viens d'essayer RecycleBinEx sur Windows 10. L'interface graphique a un comportement étrange - certains fichiers dans la corbeille s'affichent avec des noms de fichiers à caractère unique - mais l'option de ligne de commande pour supprimer les fichiers plus anciens que X jours semble fonctionner correctement. Pour voir les options de ligne de commande, tapez "RecycleBinEx.exe /?" sur la ligne de commande.
Aaron
17

Je ne connais aucun module complémentaire Explorer, mais comme la plupart des choses dans Windows, cela peut être fait avec 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
}

Enregistrez ce script sous forme de fichier texte avec une .ps1extension. Vous pouvez ensuite utiliser le Planificateur de tâches pour l'exécuter à intervalles réguliers.

Tout d'abord, cependant, vous devez autoriser l'exécution des scripts PowerShell, car par défaut, vous ne pouvez exécuter que des commandes saisies directement dans l'invite PowerShell. Pour ce faire, ouvrez PowerShell et tapez la commande suivante:

Set-ExecutionPolicy RemoteSigned

Tapez "y" ou "oui" lorsque vous y êtes invité. Voir Get-Help Set-ExecutionPolicypour plus d'informations.

Ouvrez maintenant le Planificateur de tâches et créez une nouvelle tâche avec les paramètres suivants:

  1. Sous l'onglet "Général", entrez un nom et cochez l'option "Exécuter avec les privilèges les plus élevés"
  2. Sous l'onglet "Déclencheurs", ajoutez un nouveau déclencheur et définissez la tâche à exécuter quotidiennement
  3. Sous l'onglet "Actions", ajoutez une nouvelle action:
    • laissez le type "Démarrer un programme"
    • définissez le champ "Programme / script" sur C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • définissez le champ "Ajouter des arguments" sur -NonInteractive -File "C:\path\to\script.ps1"
  4. Sous l'onglet "Conditions", décochez "Démarrer la tâche uniquement si l'ordinateur est sur secteur"

Explication ligne par ligne du script:

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

Cela obtient une liste de tous les lecteurs de l'ordinateur et les parcourt en boucle un par un. Le -PSProvider FileSystemparamètre est requis pour renvoyer uniquement les lecteurs de disque, car PowerShell possède également des pseudodrives pour diverses autres choses comme les ruches de registre.

Pour plus d'informations, consultez Get-Help Get-PSDriveet ce didacticiel sur le traitement des boucles dans PowerShell .

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

Cela crée le chemin d'accès au dossier de la corbeille sur le lecteur actuel. Notez l'utilisation de guillemets simples autour de la deuxième partie, pour empêcher PowerShell d'interpréter $Recyclecomme une variable.

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

Cela renvoie tous les fichiers et sous-dossiers sous le chemin donné (celui que nous avons construit avec la commande précédente). Le -Forceparamètre est nécessaire pour aller dans les dossiers cachés et système, et le -Recurseparamètre rend la commande récursive, c'est-à-dire. parcourir également tous les sous-répertoires. -ErrorActionest un paramètre standard pour la plupart des commandes PowerShell, et la valeur SilentlyContinuefait que la commande ignore les erreurs. Le but de ceci est d'éviter les erreurs pour les lecteurs qui ont été configurés pour supprimer immédiatement les fichiers. Le |symbole à la toute fin dirige les résultats vers la commande suivante; Je l'ai divisé en plusieurs lignes pour une meilleure lisibilité.

Pour plus d'informations, voir Get-Help Get-ChildItem.

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

Cela filtre simplement les résultats de la commande précédente et renvoie uniquement ceux qui datent de plus de 30 jours. $_fait référence à l'objet en cours de traitement, et la LastWriteTimepropriété dans ce cas fait référence à la date et à l'heure auxquelles le fichier a été supprimé. Get-Daterenvoie la date actuelle.

Pour plus d'informations, voir Get-Help Where-Objectet Get-Help Get-Date.

Remove-Item -Recurse

Cela supprime simplement les éléments qui lui ont été transmis par la commande précédente. Le -Recurseparamètre supprime automatiquement le contenu des sous-dossiers non vides; sans elle, vous seriez invité à indiquer de tels dossiers.

Pour plus d'informations, voir Get-Help Remove-Item.

Indrek
la source
Je l'ai mis en place. Merci beaucoup de l'expliquer avec autant de détails.
hkBattousai
3
Vous pouvez également mettre à l' échelle mondiale la politique d'exécution, vous pouvez créer une ligne de commande qui la caractérise pour le processus: powershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1.
jpmc26
La Corbeille dans la vue détaillée de l'explorateur a une colonne spéciale: "Date supprimée", je me demande comment filtrer en utilisant cela à la place? LastWriteTime n'est pas du tout la même chose.
Ciantic
A parlé trop tôt, a trouvé ceci: baldwin-ps.blogspot.fi/2013/07/… il y a aussi une "date supprimée".
Ciantic
4

La corbeille de Windows supprime automatiquement les fichiers plus anciens lorsqu'elle atteint sa taille maximale: que se passe-t-il lorsque la corbeille utilise son espace alloué?

Vous pouvez contrôler cela à partir des propriétés de la corbeille

entrez la description de l'image ici

Matthew Lock
la source
1
Cette réponse ne répond pas à la question, car ce mécanisme ne prend pas en compte l'âge spécifique des fichiers; il supprime uniquement les fichiers les plus anciens d'âge arbitraire pour conserver un volume de données prédéfini.
Jonathan J