Em um volume NT7 do Win7, estou usando o cwrsync, que suporta --link-dest corretamente para criar backups do tipo "instantâneo". Então eu tenho:
z:\backups\2010-11-28\cygdrive\c\Users\...
z:\backups\2010-12-02\cygdrive\c\Users\...
O conteúdo de 02/12/2010 é na maioria dos casos, links diretos para arquivos no diretório 28/11/2010, mas existem alguns arquivos novos ou alterados apenas em 02/12/2010. No linux, o utilitário 'du' me dirá o tamanho real obtido por cada instantâneo incremental. No Windows, explorer e du under cygwin são enganados por hardlinks e mostram que o dia 02/12/2010 ocupa um pouco mais de espaço do que o 28/11/2010.
Existe um utilitário do Windows que mostre o espaço correto usado de maneira correta?
Respostas:
Tente usar o uso de disco do Sysinternals (também conhecido como
du
), usando especificamente os sinalizadores-u
e-v
contará apenas ocorrências exclusivas e mostrará o uso de cada pasta à medida que avança.Até onde eu sei, o sistema de arquivos não mostra a diferença entre o arquivo original e um link físico (esse é realmente o ponto de um link físico), portanto você não pode descontá-los em uma pasta por pasta, mas precisa fazer isso comparativamente.
Para testar, criei uma pasta aleatória com 6 arquivos em. Clonou a coisa toda. Em seguida, criou vários links físicos e físicos dentro da primeira pasta para referenciar outros arquivos na primeira pasta e também alguns na segunda.
du -u -v testFld
Resultados em execução (observe os valores ao lado das pastas no KiB):du -u -v testFld\a
Resultados em execução :du -u -v testFld\b
Resultados em execução :Observe a incompatibilidade?
Os links simbólicos em A, que se referem aos arquivos em B, são contados somente contra A durante a execução "completa" e B retorna apenas 54 (mesmo que os arquivos estivessem originalmente em B e tivessem ligações físicas de A). Quando você mede B separadamente (ou, se você não usar a
-u
bandeira exclusiva), ela contará sua medida "completa" de 74.fonte
-u
bandeira. Você obtém a medida "completa" se usar a-u
bandeira. Sem ele, ele conta apenas 1 instância de qualquer arquivo com link físico. É o que diz o documento: docs.microsoft.com/en-gb/sysinternals/downloads/du e o teste o verifica.O PowerShell 5 pode ser uma opção. Está disponível para o Windows 7, mas só o testei em um Server 2012 R2 com a visualização de abril de 2015
O provedor do sistema de arquivos no PowerShell 5 possui duas novas propriedades
LinkType
eTarget
:isso retorna:
Então agora só posso mostrar todos os arquivos no system32 que não são hardlinks:
isso retorna:
você pode comparar isso com todos os arquivos:
Então, mais de 13.000 arquivos com 2 GB ou mais são hardlinks
fonte
O TreeSize Professional (~ $ 55, 30 dias de teste) alega distingir o espaço em disco do NTFS no hardlink. Um teste rápido parece confirmar isso.
O suporte a hardlink não está pronto para uso: vá em Ferramentas> Opções> Digitalizar , digitalize novamente, use
Ctrl-1
eCtrl-2
para alternar entre Tamanho e Espaço alocado . Alocado é o espaço real usado, enquanto Tamanho é a estatística normalmente relatada por outros programas.Há uma penalidade de desempenho por ativar o suporte a hardlink (e links simbólicos e montagens também se você desejar). A paleta de cores é extravagante para o meu gosto, mas isso parece ser o par para o curso neste gênero. Também tenha cuidado ao clicar na área do gráfico de caixas - é fácil mover acidentalmente uma pasta com um arrastar-e-soltar errado, quando você pretendia apenas expandi-la.
fonte
Eu acho que alguns fatos precisam ser definidos aqui.
O Windows não pode "detectar" os hardlinks, pois cada arquivo é realmente um hardlink para vários bytes no disco.
A ferramenta du detecta duplicatas, mas isso também é falso, pois se a pasta A contém arquivos e B contém apenas links físicos para os arquivos em A, então du de A e du de B retornam a mesma resposta - o tamanho dos arquivos originalmente de A, mas agora esses arquivos também estão em B.
Na verdade, isso está correto, pois, por exemplo, se você excluiu A, seus arquivos não serão excluídos no disco, porque ainda são referenciados por B. Com links físicos, qual arquivo é a fonte e qual é o link físico é bastante arbitrário e sem sentido.
Produtos como du listarão um diretório enquanto descontam duplicatas. Isso funcionará apenas se todos os arquivos e links físicos estiverem contidos em um diretório. Muitos produtos de lista de pastas fazem isso.
Conclusão: Com links físicos, a questão "do tamanho real usado em um diretório NTFS" não faz sentido.
fonte
Eu também faço algumas pesquisas sobre esta questão. Aqui estão os resultados que eu descobri.
O tamanho da pasta que contém arquivos vinculados no NTFS pode ser considerado em três significados diferentes:
O número 2 é o que é mostrado pelo TreeSize Professional, na guia Detalhes, coluna Alocado, se a opção "Rastrear hardlinks NTFS" estiver ativada.
Aqui está o exemplo da pasta winsxs (7,5 GB em oposição a 10):
Receber o valor número 3 ainda é uma pergunta para mim. Embora eu tenha conseguido obter um limite inferior usando o Total Commander com o plugin NL_Info. O que eu tenho é um tamanho ocupado por arquivos que possuem apenas um hardlink (arquivos exclusivos). Foi cerca de 5 GB para um determinado exemplo.
Então, tentando expandir harrymc responda ou diga em outras palavras.
fonte
Você pode usar o ln.exe para mostrar o "tamanho real" de uma árvore de diretórios:
Ele detectará apenas hardlinks abaixo dessa pasta inicial.
fonte