Exclusão automática de arquivos antigos da lixeira, mantendo os novos?

25

Eu quero um complemento do explorador que excluirá arquivos antigos da lixeira após um período de tempo.

Por exemplo, desejo definir o limite de tempo para 30 dias. Quando eu apago um arquivo no Windows, o software mantém um registro do seu tempo de exclusão. Todos os dias, ele verifica o arquivo excluído cuja idade chegou a 30 dias e exclui se houver algum.

Existe algum software como este?

    
por hkBattousai 09.06.2012 / 14:25

4 respostas

8

RecycleBinEx é um aplicativo simples para o Windows que faz exatamente o que você pede. Veja: link

No Mac OSX, o Hazel faz a mesma coisa (entre os outros): link

O KDE Plasma vem com esse recurso como padrão , então se você está rodando o Kubuntu, Arch, Chackra Linux ou qualquer outra distro com o KDE, você já tem esse recurso. Basta olhar para a janela de configuração do Dolphin.

No Ubuntu Unity, Gnome ou qualquer outro ambiente de desktop gnu / linux fornecendo um recurso padrão de Lixo FreeDesktop.org, você pode usar AutoTrash para fazer isso: link
Comportamento semelhante também pode ser realizado com trash-cli , que também pode ser usado para enviar arquivos para o lixo diretamente da linha de comando. Veja: link

A maioria dos aplicativos de e-mail por aí também tem esse recurso para a "lixeira".

No Android, não há "lixeira" por padrão (quando você a exclui, ela desaparece para sempre), mas você pode instalar aplicativos como Dumpster para (de alguma forma) obter recursos semelhantes: < href="http://www.dumpsterapp.mobi/"> link

Como dito acima, acho que a remoção automática de arquivos antigos da lixeira é um ótimo recurso para torná-lo mais utilizável , pois reduz a desordem (são esses arquivos trashed 3 meses atrás ainda relevante para você? E todas as revisões antigas do mesmo arquivo?) e torna mais fácil encontrar o que você deseja recuperar (este é o motivo de ter uma "lixeira" em nossos computadores, afinal), ainda sendo seguro.

É ainda mais útil se você trabalha muito com arquivos de texto (código ou prosa), que na maioria das vezes são pequenos e não precisam de muito espaço (talvez nunca chegue a sua cota de lixeira). Dessa forma, você nem precisará periodicamente "esvaziar sua lixeira". Você apenas sabe que tem uma janela de tempo para recuperar seus arquivos "lixeira" se precisar.

Olhando para a maioria dos serviços de nuvem existentes (Dropbox, Google Drive, Simplenote, ...), a maioria deles parece ter uma política semelhante para os arquivos excluídos. Eu realmente acho que é a coisa certa a fazer com seus arquivos, e eles parecem pensar assim.

    
por 05.07.2013 / 11:59
16

Não conheço nenhum complemento do Explorer, mas, como a maioria das coisas no Windows, isso pode ser feito com o 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
}

Salve este script como um arquivo de texto com a extensão .ps1 . Você pode usar o Agendador de Tarefas para executar isso em intervalos regulares.

Primeiro, você precisa permitir a execução de scripts do PowerShell, pois, por padrão, só é possível executar comandos digitados diretamente no prompt do PowerShell. Para fazer isso, abra o PowerShell e digite o seguinte comando:

Set-ExecutionPolicy RemoteSigned

Digite "y" ou "yes" quando solicitado. Consulte Get-Help Set-ExecutionPolicy para obter mais informações.

Agora, abra o Agendador de Tarefas e crie uma nova tarefa com os seguintes parâmetros:

  1. Na guia "Geral", insira um nome e marque a opção "Executar com privilégios mais altos"
  2. Na guia "Triggers", adicione um novo gatilho e defina a tarefa para ser executada diariamente
  3. Na guia "Ações", adicione uma nova ação:
    • deixe o tipo como "Iniciar um programa"
    • defina o campo "Programa / script" como C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • defina o campo "Adicionar argumentos" como -NonInteractive -File "C:\path\to\script.ps1"
  4. Na guia "Condições", desmarque a opção "Iniciar a tarefa apenas se o computador estiver com energia AC"

Explicação linha-a-linha do script:

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

Isso obtém uma lista de todas as unidades no computador e as percorre uma a uma. O parâmetro -PSProvider FileSystem é necessário para retornar apenas unidades de disco, porque o PowerShell também possui pseudo-aplicativos para várias outras coisas, como seções de registro.

Para obter mais informações, consulte Get-Help Get-PSDrive e este tutorial sobre processamento de loop no PowerShell .

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

Isso constrói o caminho para a pasta Lixeira na unidade atual. Observe o uso de aspas simples ao redor da segunda parte, para evitar que o PowerShell interprete $Recycle como uma variável.

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

Isso retorna todos os arquivos e subpastas sob o caminho determinado (aquele que construímos com o comando anterior). O parâmetro -Force é necessário para entrar em pastas ocultas e do sistema, e o parâmetro -Recurse torna o comando recursivo, isto é. loop através de todos os subdiretórios também. -ErrorAction é um parâmetro padrão para a maioria dos comandos do PowerShell, e o valor SilentlyContinue faz com que o comando ignore os erros. O objetivo disso é evitar erros nas unidades que foram configuradas para excluir arquivos imediatamente. O símbolo | no final canaliza os resultados para o próximo comando; Divido-o em várias linhas para melhor legibilidade.

Para mais informações, consulte Get-Help Get-ChildItem .

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

Isso simplesmente filtra os resultados do comando anterior e retorna apenas aqueles com mais de 30 dias. $_ refere-se ao objeto atualmente sendo processado, e a propriedade LastWriteTime , neste caso, refere-se à data e hora em que o arquivo foi excluído. Get-Date retorna a data atual.

Para obter mais informações, consulte Get-Help Where-Object e Get-Help Get-Date .

Remove-Item -Recurse

Isso simplesmente exclui os itens passados a ele pelo comando anterior. O parâmetro -Recurse exclui automaticamente o conteúdo de subpastas não vazias; sem isso, você seria solicitado para essas pastas.

Para mais informações, consulte Get-Help Remove-Item .

    
por 09.06.2012 / 17:22
4

A Lixeira do Windows exclui automaticamente os arquivos mais antigos quando atinge seu tamanho máximo: O que acontece quando a Lixeira usa seu espaço alocado?

Você pode controlar isso a partir das propriedades do Recylce Bin

    
por 08.10.2014 / 04:23
4

Atualização: Percebi que o Windows não exclui meus arquivos da lixeira de reciclagem após 30 dias. Aparentemente, esse recurso só é ativado quando você está com pouco espaço em disco. Eu vou manter essa resposta como um não faça isso .

O Windows 10 possui esse recurso integrado:

  1. Pressione a tecla Win e pesquise por armazenamento
  2. Clique em Armazenamento (configurações do sistema)
  3. Ative o recurso Sentido de armazenamento
  4. Clique no link Alterar como liberamos espaço
  5. VerifiqueseaopçãoExcluirarquivosqueestãonalixeirahámaisde30diasestáativada
por 11.10.2017 / 08:06