Eu tinha um usuário com mais de 100.000 arquivos em um único diretório. A máquina trava e fica inutilizável por um longo tempo, enquanto o Explorer preenche a memória e a máquina pode travar. Existe uma maneira simples de despejar o diretório e o conteúdo? Tentamos usar a linha de comando deltree e isso não parecia muito melhor.
DaveF
Extra -
Tivemos esse problema várias vezes com o mesmo usuário (na verdade cliente). Um programa cria centenas de milhares de arquivos temporários durante sua execução. Se o programa funcionar corretamente, não importará, pois eles serão removidos mais devagar quando terminar com isso. Mas de vez em quando morre deixando a bagunça dos arquivos. Tentamos usar os métodos rmdir e del etc e eles são mais rápidos que o explorer, mas geralmente acabamos com os mesmos problemas. A partição é danificada, há um arquivo bloqueado inexplicável, algum arquivo tem um problema de permissão, o que impede a exclusão de funcionar. Normalmente, esse problema pode ser corrigido com uma reinicialização, mas, neste caso, como este é um sistema crítico que não podemos em tempo de produção. No Unix, você pode simplesmente fazer um rm -rf etc, e isso é rápido e geralmente não há nenhum problema real com ele.
BTW - o aplicativo está sendo alterado, mas isso não entrará em produção por algum tempo e eu achei que esse problema provavelmente era interessante para outras pessoas.
Atualização - porque temos o MKS Nutcracker no sistema (sem os utilitários de linha de comando), solicitamos ao programador que reunisse uma simples rm. Isso é várias ordens mais rápido que o del / deltree, etc. Acho estranho que não exista um aplicativo tão simples assim como uma ferramenta padrão de administração do sistema Windows.
fonte
Respostas:
Você poderia usar
rmdir
:Sinalizadores:
/s
significa excluir recursivamente,/q
é o modo "silencioso".fonte
Eu costumava ter esse problema com os servidores que estava administrando. Ignore completamente o explorer e use o prompt de comando. Navegue até a pasta e "del " .
Dessa forma, você evita a sobrecarga da GUI (explorer é lixo) e da lixeira.
fonte
A menos que você precise disso para aplicativos herdados de 16 bits, tente aumentar o desempenho desativando a geração curta de nomes de arquivos. Isso pode ter um impacto significativo nas operações de diretório com grande número de arquivos.
Então use:
Caminho RMDIR / S / Q [drive:]
para remover o diretório com todos os seus arquivos.
fonte
Que tal mover a pasta temporária para uma unidade / partição diferente? Em vez de excluir todo o lixo, você pode formatar a unidade (GUI ou linha de comando). Com o formato rápido, isso deve ser razoavelmente rápido.
fonte
Esta é uma combinação das postagens anteriores
abra uma janela de comando:
File -> Run -> cmd
Remova o diretório
rmdir /s /q FOLDERNAME
OU
Remover um padrão de arquivos
cd \....\directory
del *.[something]
Como você observou na sua pergunta, o Windows Explorer pode realmente desacelerar as coisas.
Depois de ver sua atualização, eu tenho um dos meus próprios
Confira esta lista de removedores de arquivos
fonte
Não tenho nada melhor que del e rm, mas mesmo que demorem muito tempo, isso não deve resultar em danos à partição. Os arquivos bloqueados podem ocorrer porque o programa que os criou morreu inesperadamente.
Às vezes, mesmo que os arquivos não possam ser excluídos, eles podem ser movidos para outro subdiretório temporário. Eu apenas crio um subdiretório _todel e os movo para lá. Geralmente funciona melhor se eu mover o diretório inteiro um nível acima, em vez dos arquivos em si.
Fora isso, a única maneira de acelerar as exclusões é desfragmentar o disco rígido. Uma solução temporária pode ser mover esse diretório para um compartilhamento samba ou usar uma junção NTFS para um disco rígido USB portátil. (Uma pequena partição seria melhor e mais rápida do que usar todo o disco rígido). Você pode simplesmente ejetar o disco rígido e fazer uma formatação rápida em outro PC.
fonte
Uma partição danificada ao excluir arquivos? Esse é um grande problema com o disco, independentemente do número de arquivos sendo excluídos.
Eu tentaria a linha de comando excluir e excluir o máximo que puder até encontrar um que esteja bloqueado. Em seguida, use o Process Explorer para descobrir qual processo tem esse arquivo aberto. Mate esse processo (se você puder) e exclua novamente. Enxágüe, repita :)
fonte
Reinicialize usando um CD Linux 'Live', o rm -rf
fonte
Meio hacky, mas você pode criar um script que excluirá os arquivos em pedaços, eu não sei o formato, mas assumindo que são arquivos que começam com as letras az, você pode fazer
altere o deltree com o método de remoção de sua escolha. provavelmente será mais lento, mas menos propenso a erros?
Nota: você também pode tentar instalar o cygwin para obter comandos como o rm, que provavelmente continuaria excluindo arquivos, mesmo após encontrar um erro em um arquivo.
fonte
Os vários métodos acima de tudo funcionam. Se você tiver o cygwin carregado em um pen drive, basta conectá-lo ao seu USB local, inicializar o shell do cygwin e executar o comando RM conforme mencionado acima. Essa é uma maneira prática de manter a flexibilidade do unix à mão.
fonte
Você também pode inicializar no console de recuperação ou algo assim. Isso deve ignorar completamente quaisquer problemas estranhos com o sistema operacional.
fonte
Monte a pasta em uma máquina Linux e faça a exclusão recursiva a partir daí.
# mount -t cifs //server/share /mnt/tobedeleted -o username=yourshareusername
# rm /mnt/tobedeleted/* -R
Você pode até usar um trabalho cron para excluir os arquivos em intervalos regulares.
fonte
Por que não usar robocopy e espelhar um diretório vazio?
Basta criar uma pasta vazia e, em seguida, use:
fonte
Se nenhuma das outras sugestões estiver funcionando, você já pensou em acelerar sua E / S?
Compre controladores melhores, discos mais rápidos.
Ou será que, se os arquivos forem temporários (como você sugere) e o tamanho permitir, você poderá adicionar RAM extra à caixa (barata) e configurar um disco RAM?
Na melhor das hipóteses, o desempenho não seria prejudicado ao excluir grandes volumes de arquivos. Na pior das hipóteses, uma reinicialização limparia a partição.
fonte
Tente recortar e colar na lixeira, pois ela deve ignorar a tentativa de mover todos os arquivos. Não sei ao certo o que será feito para esvaziar a lixeira, porque provavelmente ela examinará todos os arquivos.
fonte
A exclusão com SHIFT + DEL faz alguma diferença quanto à velocidade?
fonte