Como esvaziar rapidamente uma lixeira muito cheia?

38

Excluí cerca de meio milhão de arquivos de uma pasta e não pensei em pressionar Shiftpara excluí-los completamente imediatamente.

Agora eles estão entupindo minha lixeira, e o Windows alega que levará 4 horas para esvaziá-la - alega fazer cerca de 68 arquivos por segundo.

Existe alguma mágica ou um método alternativo que pode acelerar isso?

Recompensa - Estou começando uma recompensa. Os arquivos ainda estão na minha lixeira, pois não havia necessidade urgente de me livrar deles e, dessa forma, posso experimentar as sugestões apresentadas. No entanto, estou procurando uma maneira que não inclua a exclusão do conteúdo da RECYCLERpasta - tenho certeza de que funcionaria, mas me parece um pouco impuro.

Pekka suporta GoFundMonica
fonte
8
Sim, muito rápido: formate sua unidade.
Mehrdad
@Pekka - Então, faz um dia. Na verdade, levou 4 horas?
Ƭᴇcʜιᴇ007
3
@Mehrdad isso não levaria muito mais tempo?
Pacerier 11/08/11
0,5 milhões de arquivos‽ o.OIsso é um pouco. Após ~ 20 anos de uso extensivo do computador, só tenho ~ 300K arquivos em todos os volumes do meu sistema atual (sem contar meus milhares de disquetes ou outras unidades). Você pode dizer o que diabos estava nessa pasta?
Synetech 22/08/11
@Synetech uma dúzia de versões de um grande CMS com milhares de arquivos ativos e JavaScript widgets de cada um, em cima de tudo isso sob controle de versão SVN (que adiciona arquivos de controle para cada um)
Pekka suporta GoFundMonica

Respostas:

25

Existe o RecycleNOW , um pequeno utilitário que esvazia a Lixeira imediatamente, não importa quanto ela contenha. (Ou pelo menos eu já vi isso correr muito rapidamente, mesmo com minha Lixeira contendo ~ 1 GB de dados.) Funciona com o Windows 7.

Depois de obtê-lo, basta clicar duas vezes no arquivo executável e pronto. A lixeira deve estar vazia.

Isxek
fonte
4
Interessante, mas isso não funcionaria no meu Windows 7 de 64 bits! Iniciei a ferramenta com direitos de administrador, ela foi executada por alguns segundos e saiu, mas não houve alteração na lixeira.
Pekka suporta GoFundMonica
2
Update: Este fez trabalho depois de tudo, ele apenas levou alguns minutos para a janela do Explorer para atualizar! Obrigado. (Eu ainda não posso conceder a recompensa.)
Pekka suporta GoFundMonica
5
> Eu vi isso correr muito rapidamente, mesmo com minha Lixeira contendo ~ 1 GB de dados. O tamanho é irrelevante, o que importa é o número de arquivos .
Synetech
@ Synetech: Verdadeiro. Eu simplesmente não contei, pois havia pastas lá também.
Isxek
Eu tinha que ter certeza de NÃO executar este utilitário como administrador e NÃO executá-lo em um prompt de comando no nível de administrador. Parece que é executado de uma maneira específica do usuário.
Andrew Koster
39

Você tem um antivírus que faz a on-accessverificação? Desative-o durante sua ação de exclusão.

Com o meu antivírus desativado, a exclusão é 10 vezes mais rápida.

(Eu nunca entendi por que ele verifica os arquivos que estão prestes a serem excluídos)

Jeff
fonte
5
Boa dica! Isso triplica a taxa na qual os arquivos são excluídos. Ainda é muito lento, mas definitivamente uma melhoria.
Pekka suporta GoFundMonica
2
@Moab: o mesmo aqui
surfasb 08/08
11
Você deve desativar on-accesse deixá-lo digitalizar on-write. :)
Tamara Wijsman
@Moab same here buddy ........
avirk
3
Obrigado pelo voto pessoal, você me deu o raro distintivo populista por ter o dobro dos votos da resposta aceita. Apenas 23 pessoas já recebi esse emblema :-)
Jeff
16

Não deve ser tão lento, a menos que você tenha extensões de shell instaladas que conectem o processo de exclusão para fazer algo (como o recurso "Exclusão inteligente" da extensão de shell de conexão NTFS).

Mas você sempre pode tentar

RmDir /S "C:\$Recycle.Bin"

e

RmDir /S "C:\RECYCLER"

e eles podem ser mais rápidos. Eles excluirão toda a sua lixeira em C :, embora (incluindo os arquivos de outros usuários).

Mehrdad
fonte
11
Outra opção é inicializar em um live-cd do Linux e excluir a pasta de reciclagem.
Joe Internet
2
Não, definitivamente será mais rápido, principalmente quando houver muitos arquivos no RB, porque o Explorer faz algumas tarefas domésticas extras que a linha de comando renuncia. Você também deseja redirecionar a saída nulpara torná-la ainda mais rápida.
Synetech
10

Um método incondicional é exibir os arquivos ocultos e protegidos do SO nas Opções de Pastas e, em seguida, deslocar + excluir a pasta Recycler (XP) ou $ Recycle.Bin (Vista, 7) na raiz do C:

Se não permitir, use um CD de inicialização da distribuição Linux e exclua-os de lá.

Moab
fonte
O melhor conselho até agora. Eu recomendo fortemente o consulente para seguir este conselho
GD1
2
Você precisará Shift + Del, caso contrário, ele tentará recriar a Lixeira. Além disso, se houver muitos arquivos nele, fazer isso no Explorer ainda terá a mesma velocidade do comando Vazio . Usar a linha de comando como Mehrdad indicou (eu uso em rdvez de rmdir, mas tomate-tomate), ignorará todo o trabalho extra que o Explorer faz e o excluirá muito mais rapidamente, especialmente se você redirecionar a saída para nul.
Synetech
11
Ele irá recriar uma lixeira vazia, sim shift + del.
Moab,
8

Percebi que o Windows 7 lida com a Lixeira muito pior que o XP, principalmente quando há muitos itens nela. Sempre que tenho uma lixeira cheia de um número ridículo de arquivos e, especialmente, quando estiver no 7, o que faço é abrir um prompt de comando ( cmd) e usar um comando simples para excluir a Lixeira no nível do sistema de arquivos (altere a unidade, conforme necessário):

rd /s /q C:\$RECYCLE.BIN > nul

Pode haver alguns nomes diferentes para o diretório Lixeira, dependendo da versão do Windows e outros programas instalados (por exemplo, $RECYCLE.BIN, RECYCLED, RECYCLER, RECOVERY BIN). Para compatibilidade com versões diferentes do Windows e com a lixeira antiga Norton Protected, use esta versão (pressupõe que não haja arquivos ou pastas legítimos na raiz da unidade que contenham recycl; o que é raro de qualquer maneira):

rd /s /q C:\*recycl* > nul

O que isso faz é excluir a pasta e todo o seu conteúdo e redirecionar qualquer saída para nul(ou seja, não mostrar nenhuma saída).

Este é provavelmente o método mais rápido de liberar a Lixeira por alguns motivos:

  • A inicialização de um CD ao vivo levará um tempo para desligar o Windows, inicializar o outro sistema operacional, depois encerrá-lo e reinicializar o Windows, o que anula completamente o objetivo
  • Esvaziar ou mesmo excluir a Lixeira no Explorer (mesmo com Shift + Del) faz com que a manutenção extra da casa ocorra, o que não ocorre com o rdcomando
  • Redirecionar a saída para nulacelerar as coisas (tecnicamente, não deve exibir nada parecido dele deltreefazer, mas ainda é um bom truque para saber)

Excluir a pasta da Lixeira completamente não é um problema, pois ela é recriada assim que você exclui um arquivo.


No meu arquivo em lotes, eu uso o método acima (que usa o rdcomando interno rápido ), mas também tenho algumas referências a programas executáveis ​​externos de terceiros:

Synetech
fonte
4

Esvaziar a lixeira é o que realmente exclui os arquivos no nível do sistema de arquivos; portanto, se isso estiver demorando muito, acho que não há muito o que fazer. Você pode tentar minimizar o uso do disco por outros programas, porque a busca desnecessária para frente e para trás retarda tudo, mas é isso.

A capacidade máxima da lixeira é limitada a uma certa porcentagem do disco; portanto, o esvaziamento nunca deve levar horas. No momento, não ajuda, mas convém garantir que seu disco seja desfragmentado pelo menos semanalmente, se não diariamente. No Windows 7, você pode agendar a desfragmentação dessa maneira.

As únicas razões pelas quais posso pensar por que o esvaziamento levaria horas é ter muitos arquivos muito pequenos em um disco muito fragmentado ou algum programa que interfira no processo. Ou disco / cabo com problemas que causam muitas tentativas nas operações de E / S.

Sistema de arquivos é a parte do sistema operacional que monitora arquivos e diretórios e onde eles residem nos blocos do dispositivo de armazenamento. Se você possui um diretório de cem mil arquivos, o sistema de arquivos precisa ter entrada para cada um deles, para tornar a navegação e o acesso razoavelmente rápidos ao diretório, para saber onde os dados desses arquivos estão armazenados nos blocos de dispositivos e para saber quem está. permissão para acessá-los. Toda vez que um arquivo é adicionado ou removido, todos esses dados precisam ser atualizados, para que saibamos que algumas partes do dispositivo de armazenamento agora estão livres para serem usadas por outras pessoas.

Zds
fonte
11
São muitos arquivos muito pequenos, o que provavelmente está tornando o processo lento.
Pekka suporta GoFundMonica
+1: "meio milhão de arquivos" levará um bom tempo para excluir, ao pressionar 'shift' ou ao esvaziar da lixeira.
Ƭᴇcʜιᴇ007
Não sei ao certo o que você quer dizer com "no nível do sistema de arquivos". Pressionar apenas a tecla Delete emite um comando de movimentação nos arquivos selecionados. Esvaziar a lixeira ou pressionar Shift-Del na verdade remove a referência ao arquivo no sistema de arquivos, mas os dados ainda estão lá até que outros arquivos os substituam. Suponho que seja uma questão de definição, mas consideraria excluir no "nível do sistema de arquivos" a substituição real dos dados usando a ferramenta de limpeza de disco.
Music2myear
"Nível do sistema de arquivos" significa que os arquivos são excluídos das entradas do diretório e dos registros de alocação de espaço do sistema de arquivos. Limpar o conteúdo real seria "nível de dispositivo de bloco".
Zds
0

O que pode ajudar é fechar todas as janelas do Explorer. Parece que o sistema operacional está tentando atualizá-los em cada arquivo excluído e isso torna as coisas mais lentas.

Robert
fonte