Eliminare automaticamente i vecchi file dal cestino, mantenendo quelli nuovi?


25

Voglio un componente aggiuntivo di Explorer che eliminerà i vecchi file dal cestino dopo un periodo di tempo.

Ad esempio, voglio impostare il limite di tempo su 30 giorni. Quando elimino un file in Windows, il software terrà una registrazione del suo tempo di eliminazione. Ogni giorno cercherà i file eliminati la cui età ha raggiunto i 30 giorni e cancellerà se ce ne sono.

C'è qualche software come questo?


Forse, invece di impostare un limite di tempo, è possibile che il Cestino elimini automaticamente gli elementi più vecchi quando viene raggiunto un determinato limite di dimensioni ? Questo sarebbe accettabile?
William Jackson,

3
@WilliamJackson Quella può essere una soluzione per coloro che hanno poco spazio sul disco rigido. Ma nel mio caso, voglio assicurarmi di non pentirmi di aver svuotato il file di riciclaggio a causa della perdita di un file eliminato di recente. Con questo sistema, mi dimenticherò solo del cestino, si svuoterà automaticamente e avrò un sacco di tempo per recuperare un file cancellato se mi capita di rimpiangerlo in seguito.
hkBattousai,

1
Nel mondo gnu / linux, KDE ha questa funzione e penso che sia eccezionale per l'usabilità. Perché dovrei tenere i file nel cestino per più di, diciamo, 1 mese? Questo approccio non ingombra il cestino con file vecchi che non saranno più rilevanti per te, quindi è molto più facile trovare e recuperare uno o più file quando ne hai bisogno (molto utile se lavori molto con il testo file, che sono sempre piccoli) e non sprecano spazio su disco con i file non più utili.
gerlos,

Non è un componente aggiuntivo per esploratori ed è solo 24 ore, ma CCleaner ha questa opzione i.imgur.com/JaeJhzU.png
Matthew Lock,

Risposte:


9

RecycleBinEx è una semplice applicazione per Windows che fa esattamente quello che chiedi. Vedi: http://www.fcleaner.com/recyclebinex

Su Mac OSX, Hazel fa la stessa cosa (tra le altre): http://www.noodlesoft.com/

KDE Plasma include questa funzione come impostazione predefinita , quindi se usi Kubuntu, Arch, Chackra Linux o qualsiasi altra distribuzione con KDE, hai già questa funzione. Guarda la finestra di configurazione di Dolphin.

Su Ubuntu Unity, Gnome o qualsiasi altro ambiente desktop gnu / linux che fornisce una funzionalità di cestino standard di FreeDesktop.org puoi usare AutoTrash per fare questo: http://www.logfish.net/pr/autotrash/
Un comportamento simile può essere realizzato anche con trash-cli , che potrebbe essere utilizzato anche per inviare file nel cestino direttamente dalla riga di comando. Vedi: https://github.com/andreafrancia/trash-cli

La maggior parte delle app di posta elettronica là fuori hanno anche questa funzione per il loro "cestino".

Su Android non esiste alcun "cestino" per impostazione predefinita (quando lo elimini, è andato per sempre), ma puoi installare app come Dumpster per (in qualche modo) ottenere funzionalità simili: http://www.dumpsterapp.mobi/

Come detto sopra, penso che rimuovere automaticamente i vecchi file dal cestino sia una grande funzionalità per renderlo più utilizzabile , poiché riduce il disordine (i file che hai cestinato 3 mesi fa sono ancora rilevanti per te? E TUTTE quelle vecchie revisioni dello stesso file?) e semplifica la ricerca di ciò che si desidera ripristinare (questo è il motivo per avere un "cestino" sui nostri computer, dopo tutto), rimanendo comunque al sicuro.

È ancora più utile se lavori molto con file di testo (codice o prosa), che il più delle volte sono piccoli e non hanno bisogno di molto spazio (quindi potresti non raggiungere mai la tua quota del cestino). In questo modo non dovrai nemmeno periodicamente "svuotare il cestino". Sai solo che hai una finestra di tempo per recuperare i tuoi file "cestinati", se necessario.

Osservando la maggior parte dei servizi cloud disponibili (Dropbox, Google Drive, Simplenote, ...), la maggior parte di essi sembra avere una politica simile per i file eliminati. Penso davvero che sia la cosa giusta da fare con i tuoi file, e loro sembrano pensarlo.


1
Uso questo software da quando hai pubblicato la tua risposta qui. È abbastanza buono Sono soddisfatto. Lo consiglio. Questo era esattamente quello che stavo cercando. Grazie per la tua risposta.
hkBattousai,

1
Una bella aggiunta a quell'elenco è trash-cli, uno strumento di cestino della riga di comando simile autotrash, che ti consente di inviare file nel cestino anche dalla riga di comando. Vedi webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html e github.com/andreafrancia/trash-cli
gerlos

RecycleBinEx funzionerà in Windows 10? Sembra che non sia una funzionalità predefinita offerta in Windows 10.
still_dreaming_1

1
@ still_dreaming_1 l'ultima volta che ho provato (diversi mesi fa), RecycleBinExsembrava funzionare su Windows 10. Ma non lo uso come il mio sistema principale, quindi non posso dire se funziona ancora con gli aggiornamenti recenti del sistema.
gerlos

1
Ho appena provato RecycleBinEx su Windows 10. La GUI ha un comportamento strano - alcuni file nel cestino vengono visualizzati con nomi di file a carattere singolo - ma l'opzione della riga di comando per rimuovere i file più vecchi di X giorni sembra funzionare bene. Per visualizzare le opzioni della riga di comando, digitare "RecycleBinEx.exe /?" alla riga di comando.
Aaron,

17

Non conosco alcun componente aggiuntivo di Explorer, ma come la maggior parte delle cose in Windows, questo può essere fatto 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
}

Salva questo script come file di testo con .ps1estensione. È quindi possibile utilizzare l'Utilità di pianificazione per eseguirlo a intervalli regolari.

Innanzitutto, tuttavia, è necessario consentire l'esecuzione degli script di PowerShell, poiché per impostazione predefinita è possibile eseguire solo i comandi digitati direttamente nel prompt di PowerShell. Per fare ciò, aprire PowerShell e digitare il comando seguente:

Set-ExecutionPolicy RemoteSigned

Digitare "y" o "yes" quando richiesto. Vedi Get-Help Set-ExecutionPolicyper maggiori informazioni.

Ora apri Utilità di pianificazione e crea una nuova attività con i seguenti parametri:

  1. Nella scheda "Generale", inserisci un nome e seleziona l'opzione "Esegui con i privilegi più alti"
  2. Nella scheda "Trigger", aggiungi un nuovo trigger e imposta l'attività per l'esecuzione giornaliera
  3. Nella scheda "Azioni", aggiungi una nuova azione:
    • lasciare il tipo come "Avvia un programma"
    • imposta il campo "Programma / script" su C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • imposta il campo "Aggiungi argomenti" su -NonInteractive -File "C:\path\to\script.ps1"
  4. Nella scheda "Condizioni", deseleziona "Avvia l'attività solo se il computer è alimentato a corrente alternata"

Spiegazione riga per riga dello script:

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

Viene visualizzato un elenco di tutte le unità del computer e le scorre una ad una. Il -PSProvider FileSystemparametro è necessario per restituire solo le unità disco, poiché PowerShell ha anche pseudodrive per varie altre cose come l'hive del registro.

Per ulteriori informazioni, vedere Get-Help Get-PSDrivee questa esercitazione sull'elaborazione in loop in PowerShell .

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

Questo costruisce il percorso della cartella Cestino sull'unità corrente. Nota l'uso di virgolette singole intorno alla seconda parte, per impedire a PowerShell di interpretare $Recyclecome variabile.

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

Ciò restituisce tutti i file e le sottocartelle nel percorso specificato (quello che abbiamo creato con il comando precedente). Il -Forceparametro è necessario per accedere alle cartelle nascoste e di sistema e -Recurserende il comando ricorsivo, ad es. scorrere anche tutte le sottodirectory. -ErrorActionè un parametro standard per la maggior parte dei comandi di PowerShell e il valore SilentlyContinuefa sì che il comando ignori gli errori. Lo scopo è prevenire errori per le unità che sono state configurate per eliminare immediatamente i file. Il |simbolo alla fine riporta i risultati al comando successivo; L'ho diviso in più righe per una migliore leggibilità.

Per ulteriori informazioni, vedere Get-Help Get-ChildItem.

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

Questo semplicemente filtra i risultati dal comando precedente e restituisce solo quelli che sono più vecchi di 30 giorni. $_si riferisce all'oggetto attualmente in fase di elaborazione e la LastWriteTimeproprietà in questo caso si riferisce alla data e all'ora in cui il file è stato eliminato. Get-Daterestituisce la data corrente.

Per ulteriori informazioni, vedere Get-Help Where-Objecte Get-Help Get-Date.

Remove-Item -Recurse

Questo elimina semplicemente gli elementi passati ad esso dal comando precedente. Il -Recurseparametro cancella automaticamente il contenuto delle sottocartelle non vuote; senza di essa, ti verranno richieste tali cartelle.

Per ulteriori informazioni, vedere Get-Help Remove-Item.


L'ho organizzato. Grazie mille per averlo spiegato in modo così dettagliato.
hkBattousai,

3
In alternativa all'impostazione generale, la politica di esecuzione, è possibile creare una linea di comando che imposta per il processo: powershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1.
jpmc26,

Cestino nella vista dei dettagli di Explorer ha una colonna speciale: "Data eliminata", mi chiedo come possiamo filtrare usando quello? LastWriteTime non è assolutamente la stessa cosa.
Ciantic,

Parlato troppo presto, ho trovato questo: baldwin-ps.blogspot.fi/2013/07/… ha anche una "Data eliminata".
Ciantic,

4

Il Cestino di Windows elimina automaticamente i file più vecchi quando raggiunge la dimensione massima: Cosa succede quando il Cestino consuma lo spazio allocato?

Puoi controllarlo dalle proprietà del Recylce Bin

inserisci qui la descrizione dell'immagine


1
Questa risposta non risponde alla domanda, poiché questo meccanismo non tiene conto dell'età specifica dei file; elimina solo i file più vecchi di età arbitraria per mantenere un volume predefinito di dati.
Jonathan J,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.