Eu tenho que copiar a estrutura de diretórios de um disco NTFS local para outro (Windows 7+) e preservar os links físicos existentes nessa estrutura de diretórios.
Uma solução aceitável seria substituir os links físicos por links simbólicos (relativos) antes da cópia, mas também não tenho certeza se é possível.
Quais são as opções aqui?
ntfs
symbolic-link
hardlink
Estus Flask
fonte
fonte
Respostas:
Ferramenta para copiar links físicos em partições de disco separadas
LN - links de linha de comando
Comando:
ln --copy x:\dir\dir2 y:\dir\newdir
Recurso: http://schinagl.priv.at/nt/ln/ln.html
Faça o download: http://schinagl.priv.at/nt/ln/ln.html#contact
Nota: Parece que você acabou de baixar este software para a arquitetura da CPU a partir do arquivo ZIP, além do vcredist (Visual C ++ Redistributable) e instalá-lo. Em seguida, basta extrair os arquivos e pastas do arquivo ZIP para uma nova pasta em algum lugar (.eg
C:\Temp
). Na linha de comando, basta ir para a pasta [directory] e executar os comandos necessários para a localização da sua unidade, como mostra o exemplo acima. A execuçãoln --help
mostra detalhes da ajuda, mas o exemplo de comando acima deve copiar ohard links
por a documentação.Extensão do Shell de Link
Recurso: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Faça o download: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#contact
Seções ou Funções de Interesse com este Software
Smart Mirror
Clone
Smart Copy
ln - Hardlinks da linha de comando - Download da captura de tela
Extensão do Link Shell - Download da captura de tela
NOTAS INTERESSANTES
Parece que
hard links
estão bloqueados na mesma partição de disco para seus ponteiros de arquivo, etc. e não podem ser usados em várias partições. Além disso,hard links
nas partições NTFS fazem parte dosMaster File Table
registros (ou atributos para as contagens, pelo menos), portanto, copiá-los para um disco existente que possui o próprioMFT
parece um problema se você não clonar byte por byte no nível da partição finalmente.fonte
O utilitário de linha de comando
rsync
faz o que você pede.Presumindo que os dados antigos estejam no local A e os novos dados no B, faça o seguinte:
Citando o manual do rsync:
Como obter
rsync
e usar? Existem 2 alternativas fáceis para o Windows:Primeira alternativa: use
cygwin
. É um software do Windows. Instale-o, adicionersync
na etapa de seleção de pacotes. Deixe o restante como padrão. Depois de instalá-lo, use seu shell para digitar o comando Se desejar, você pode usar o caminho completo, em/usr/bin/rsync
vez de apenasrsync
. Se você deseja acessar unidades do Windows, use caminhos como "/ cygwin / drives" e sempre tente concluir automaticamente usando o TAB.Segunda alternativa: se for um computador de mesa, use uma distribuição GNU / Linux ao vivo. Prepare uma imagem USB ao vivo, inicialize a partir dela, monte os discos desejados e chame o rsync. Se a imagem ao vivo não tiver
rsync
, instale-a. (apt-get install rsync
no Debian e seus derivados.) Se você ainda não tem experiência com o ecossistema Linux, o cygwin pode ser mais fácil.fonte
A
for um diretório, em seguida,B
deve ser o nome desse diretório vai assumir o alvo (ao contráriocp
, por exemplo, onde o último argumento é o diretório pai)ln
como mostrado em outra resposta. Cygwin arsync
partir desta resposta também pode funcionar, como mencionei.ln --copy
,. Quanto à GUI, presumo que 'Smart Copy' é o que você está procurando.Tente pesquisar no rsync para windows. Como o rsync tem uma opção para preservar os hardlinks (sinalizador -H, --hard-links), ele deve fazer o trabalho (fonte: https://download.samba.org/pub/rsync/rsync.html ).
Você pode tentar procurar algo como cwRsync: https://www.itefix.net/cwrsync# este possui GUI.
fonte
Muito tarde para a festa aqui.
Combater fogo com fogo. Como a robocópia permitiu a bagunça, usaremos a robocópia para limpá-la também.
Crie um diretório vazio e use robocopy para copiar o diretório vazio para o destino (que possui os caminhos super longos) usando a opção de limpeza.
Isso deve funcionar.
fonte