Como copiar pastas na mesma unidade NTFS usando hardlinks?

0

Existe uma maneira de criar hardlinks para criar uma duplicata de uma pasta na mesma unidade (formato NTFS)? Eu estou olhando para fazer algo assim: XCOPY E: \ TEMP \ SAMPLE1 * E: \ TEMP \ SAMPLE2 \ / s mas, em vez de copiar os arquivos e usar o espaço extra da unidade, basta criar links para os arquivos.

Objetivo: há apenas alguns arquivos que não são necessários na pasta SAMPLE2, mas queremos manter todos eles no SAMPLE1. A pasta SAMPLE2 será eventualmente copiada para outra unidade.

OBSERVAÇÃO: o conteúdo total do SAMPLE1 é de cerca de 400 GB (com várias subpastas contidas nele) e cada um dos arquivos que vamos excluir do SAMPLE2 é de cerca de 20-40 MB cada (existem muitos, mais de 100 arquivos, localizados em várias subpastas).

Portanto, existe uma maneira de fazer o equivalente a XCOPY (comando acima), exceto o uso de hardlinks, e então removemos todos os arquivos que não queremos no SAMPLE2 antes de copiá-los para a unidade externa; em seguida, excluindo a pasta SAMPLE2.

    
por J. Chin 20.08.2013 / 02:50

2 respostas

1

Isso é simples na teoria. Você precisa criar um link simbólico do (s) diretório (s) que fará EXATAMENTE o que você deseja. Ele copia atalhos que parecem e agem como arquivos reais para o usuário e programas. Em seguida, você pode excluir os links simbólicos que não deseja que excluem apenas os links; então você copia o resto dos "arquivos" (realmente links) como o normal e copiará os arquivos reais.

Mas o Windows é baseado em GUI e não há uma solução de GUI integrada para criar links simbólicos. Além disso, o prompt de comando também dificultou. (Se você usa o Linux, é fácil e direto através do terminal, e alguns gerenciadores de arquivos gráficos como o GNOME Commander facilitam também a interface gráfica do usuário.)

Sooo .. para executar a solução acima a maneira "fácil" é baixar um plugin e arquivo de suporte (se necessário; leia as notas de download) aqui Isso adicionará opções de links simbólicos ao menu do botão direito do mouse. O que você quer é "Escolha a origem do link" para "copiar" o diretório, depois "Soltar como > Clone do Hardlink" para colar. Trabalhar no diretório vinculado como você deseja excluir arquivos (links) e tal. Em seguida, copie e cole regularmente (NÃO selecione o link e solte como) para onde você quiser e Voila, atalhos copiados como arquivos!

Por fim, exclua a pasta vinculada e é como se nada tivesse acontecido.

O plugin parece funcionar muito bem. Experimente! Só tome cuidado para fazer apenas Hard Links (sem links ou junções) e não se esqueça de trabalhar com os links e não com os arquivos reais!

Agora, para aqueles que mencionam o mklink, aqui está o que eu encontrei enquanto desenvolvia esta resposta. Usando mklink através do prompt de comando em execução como um administrador (procure por CMD e clique direito e execute como administrador) deve trabalhar o mesmo ... Mas não para mim (e muitos outros se você pesquisar). Eu tenho um acesso negado mesmo depois de modificar os privilégios via secpol.msc. Parece ser um problema predominante.

    
por 20.08.2013 / 08:46
0

A Kind encontrou um método de "hack" para obter os resultados que queremos por enquanto.

Existe um utilitário gratuito chamado DirectorySlicer para Windows que nos ajuda a "dividir" (realmente faz "cópias") de arquivos em diretórios de um determinado tamanho de pedaços. Um recurso de bônus deste utilitário é que ele usa "hardlinks" se a unidade de destino é o mesmo que a fonte e é NTFS.

Então aqui está o "hack" que acabamos de fazer. Especificamos um novo destino e especificamos um tamanho de diretório de destino de 1TB, efetivamente maior que a fonte inteira, para criar um diretório. Segundos depois, temos um monte de diretórios com hardlinks para os arquivos de origem, só queremos que você queira (quase, crie um nível de diretório extra, mas isso pode ser corrigido com bastante facilidade).

    
por 20.08.2013 / 16:25